C语言中if(p=a!=0)是什么意思

还有就是int p,a=5又是什么意思?
原程序:
void main ()
{int p,a=5;
if (p=a!=0)
printf(" %d\n",p) ;
else printf(" %d\n",p+2);
}

int p,a=5
定义两个有符号的整型变量 p,a,并且对a赋值5

if(p=a!=0)
分两步 从右到左
1、a!=0 是判断a是否等于0
若等于 返回 0
若等于 返回 1
结果是不等于 返回了 1
2、p= 返回值 也就是 p=1

3、这时候,再判断 if(p) 判断结果为真,所以输出p的值 ,为1

0分数。。。。。。晕不晕呀,不厚道~
温馨提示:答案为网友推荐,仅供参考
第1个回答  2010-04-19
这个 你要了解 运算符的 优先级问题

请看 运算符优先级 列表

!=的优先级 明显高于 赋值运算符

所以p=a!=0的计算顺序是 p=(a!=0)(可以这么理解)

a的值是5,所以a!=0必然是 真 所以 p被赋值1

而if的判断条件 变成 if(p=1)即 if(p),即if(1)

所以 会执行printf(" %d\n",p) ;

所以输出 1
第2个回答  2010-04-18
(p=a)!=0就是将a的值付给p,判断p不等于0,等价于 a!=0,当然不等啊,a等于5啊
第3个回答  2010-04-18
int p 为定义变量p
a=5 定义变量a,并赋值a等于5
if(p=a!=0) a!=0赋值于p
因为a!=0为真,所以赋p值为1
第4个回答  2013-06-26
正确答案是1.p赋值是对所以是1

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网