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

还有就是intp,a=5又是什么意思?原程序:voidmain(){intp,a=5;if(p=a!=0)printf("%d\n",p);elseprintf("%d\... 还有就是int p,a=5又是什么意思?
原程序:
void main ()
{int p,a=5;
if (p=a!=0)
printf(" %d\n",p) ;
else printf(" %d\n",p+2);
}
展开
 我来答
六月天空中的雨
推荐于2018-05-06 · TA获得超过181个赞
知道小有建树答主
回答量:429
采纳率:0%
帮助的人:240万
展开全部
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分数。。。。。。晕不晕呀,不厚道~
daling_009
2010-04-19 · TA获得超过423个赞
知道答主
回答量:78
采纳率:0%
帮助的人:84万
展开全部
这个 你要了解 运算符的 优先级问题

请看 运算符优先级 列表

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

所以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
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
回首千寻
2010-04-18 · TA获得超过280个赞
知道答主
回答量:181
采纳率:0%
帮助的人:0
展开全部
(p=a)!=0就是将a的值付给p,判断p不等于0,等价于 a!=0,当然不等啊,a等于5啊
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
I_pain
2010-04-18
知道答主
回答量:10
采纳率:0%
帮助的人:0
展开全部
int p 为定义变量p
a=5 定义变量a,并赋值a等于5
if(p=a!=0) a!=0赋值于p
因为a!=0为真,所以赋p值为1
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
chenhongda1010
2013-06-26 · TA获得超过170个赞
知道小有建树答主
回答量:239
采纳率:0%
帮助的人:181万
展开全部
正确答案是1.p赋值是对所以是1
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式