首页新闻找找看学习计划

遇到悖论了,一个指针指向的地址为零,但这个指针为逻辑真

0
[已解决问题] 解决于 2015-06-01 19:55
if(tempf->leftTree)
        printf("tempf->leftTree:%d\n",temp->leftTree);
        

这句话居然输出了

temp->leftTree:0
ithan的主页 ithan | 菜鸟二级 | 园豆:234
提问于:2015-05-31 18:35
< >
分享
最佳答案
0

明显有错

temp tempf,两个变量

奖励园豆:5
xmodygetz | 小虾三级 |园豆:575 | 2015-06-01 10:25
其他回答(2)
0

指针的真假只能说明,这个指针是否有指向。里面的数值,并不能用于判断。

指针指向的地址为0,标明这个指针指向这个0地方,是有指向的

如果想判断指针里面的内容,就要加*号了。

注意区分,条件的判断是判断的指针是否有指向,(也就是是否为NULL),和判断指针里面的内容的。

[0] | 园豆:1255 (小虾三级) | 2015-05-31 19:16
int *p;
if(p)
    printf("有指向\n");
else
    printf("无指向\n");
return 0;

这个为什么输出有指向

支持(0) 反对(0) ithan | 园豆:234 (菜鸟二级) | 2015-05-31 19:20

@ithan: 额,你不知道声明的变量都是有默认值的吗?(你这样是编程中的大忌啊,会容易导致程序崩溃的。)你随便声明一个任何类型的变量,如果没有赋初值的话,里面的内容是原先内存中的01代码的东西。

支持(0) 反对(0) [0] | 园豆:1255 (小虾三级) | 2015-05-31 19:22

@ithan: http://www.cnblogs.com/zi-xing/p/4528093.html 看看我写的这个东西吧

支持(0) 反对(0) [0] | 园豆:1255 (小虾三级) | 2015-05-31 19:23

@千紫小星: 指针的真假可以量化吗?比如用一个数值表示出来

支持(0) 反对(0) ithan | 园豆:234 (菜鸟二级) | 2015-05-31 19:32

@ithan: 

int *p=NULL;
if(p)
{
printf("我是真的的。我指向某个地方");
}
else
{
printf("我是NULL的,没有任何指向");
}

输出的是第二句话。用数值量化指针,你为什么不直接声明一个int类型的。你那样做违背了指针的含义。

支持(0) 反对(0) [0] | 园豆:1255 (小虾三级) | 2015-05-31 19:40

@千紫小星: 如果无法量化,那么怎么判断一个指针是否有指向,用if...else...已经不行了

支持(0) 反对(0) ithan | 园豆:234 (菜鸟二级) | 2015-05-31 21:07

@ithan: 怎么不行,我上面的不就判断了。看来你连if的真假都不明白是怎么回事。

支持(0) 反对(0) [0] | 园豆:1255 (小虾三级) | 2015-05-31 21:25

@ithan: 我想问你,什么是真?什么是假?

支持(0) 反对(0) [0] | 园豆:1255 (小虾三级) | 2015-05-31 21:25

@千紫小星: 我想想

支持(0) 反对(0) ithan | 园豆:234 (菜鸟二级) | 2015-05-31 21:45
0

不用指针一样可以判断真假。何必纠结

茂茂 | 园豆:2860 (老鸟四级) | 2015-06-01 09:41
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册