C语言中 a=b==c怎么理解
假如inta=1,b=2,c=3,a=b=c,a=b==c,a==(b=c),a==(b==c),它们的值是多少?应该怎么理解?...
假如 int a=1,b=2,c=3, a=b=c,a=b==c,a==(b=c),a==(b==c),它们的值是多少?应该怎么理解?
展开
3个回答
展开全部
“=”是赋值符,把c的值赋给b赋给a,最后a、b、c的值都相等,“==”是判断符;
=赋值==等于运算说a=b=c,表达式运行a值赋给b、c运行完abc值相等;
a=b==c,复合表达式先a值赋给b与c比较相等则返0,否则返非零值;
运算b==c,若b与c相等,那么得出的值为1。
扩展资料
c语言中a=b--<=a||ab!=c的计算
左边:(a=b--)<=a;
计算b--的值,b--的值为2,得到这个值也就让b的值变成了1,赋值给a后a的值为2,(a=b--)的值也就是a的值为2,2<=2成立,所以左边为真;
右边:(a+b)!=c,a+b的值为3,c的值为3,所以右边为假真||假的结果为真;
b--使b的值变成了1;
a=b--的赋值使a的值变成了2;
展开全部
int a = 1, b = 2, c = 3;
a = b = c 意思是将 c 的值赋给 b,再赋给 a,a,b,c 都等于3。
a = b == c, = 的优先级低于 ==,会先判断 b == c 结果为假,就是0值,然后将0值赋给 a,也就是执行后,a = 0, b = 2, c = 3。
a == (b=c),会先讲 c 值赋给 b, 然后判断 a 是否等于 b,表达式得到一个0值(a不等于b),但该判断不会影响 a 的值,结果 a = 1, b = 3, c = 3。
a == (b == c) 会先判断 b是否等于c,结果为0,再判断 a 是否等于 0,结果也是0。但该判断不影响a,b,c的值。还是 a = 1, b = 2, c = 3.
a = b = c 意思是将 c 的值赋给 b,再赋给 a,a,b,c 都等于3。
a = b == c, = 的优先级低于 ==,会先判断 b == c 结果为假,就是0值,然后将0值赋给 a,也就是执行后,a = 0, b = 2, c = 3。
a == (b=c),会先讲 c 值赋给 b, 然后判断 a 是否等于 b,表达式得到一个0值(a不等于b),但该判断不会影响 a 的值,结果 a = 1, b = 3, c = 3。
a == (b == c) 会先判断 b是否等于c,结果为0,再判断 a 是否等于 0,结果也是0。但该判断不影响a,b,c的值。还是 a = 1, b = 2, c = 3.
更多追问追答
追问
那请问printf("%d",a=b==c);应该输出多少?
追答
输出0,实质上是输出 a 的值。赋值表达式最后会返回最后被赋值的那个值。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
涉及到一个谁先把值赋给谁的区别。其他没啥区别。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询