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

2024-12-15 14:49:36
推荐回答(5个)
回答1:

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分数。。。。。。晕不晕呀,不厚道~

回答2:

这个 你要了解 运算符的 优先级问题

请看 运算符优先级 列表

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

所以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

回答3:

(p=a)!=0就是将a的值付给p,判断p不等于0,等价于 a!=0,当然不等啊,a等于5啊

回答4:

int p 为定义变量p
a=5 定义变量a,并赋值a等于5
if(p=a!=0) a!=0赋值于p
因为a!=0为真,所以赋p值为1

回答5:

正确答案是1.p赋值是对所以是1