首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

大一新兴的C语言疑问

2013-12-30 
大一新生的C语言疑问这里c的结果是怎么来的?#includestdio.hint main(){int a2,b2,c2++a||++b&&++c

大一新生的C语言疑问
这里c的结果是怎么来的?

#include<stdio.h>
int main()
{
int a=2,b=2,c=2;
++a||++b&&++c;
printf("a=%d,b=%d,c=%d",a,b,c);
return 0;
}

我认为c=3,但结果是c=2(这说明没有进行与运算?)

1或1与1(根据1或……,0与……规则,……部分不执行)
1或1的结果为1,然后再1与1(但是1或后面的部分不执行,还能再进行与运算吗?)
[解决办法]
查查C运算符的优先级和结合顺序
[解决办法]
与的优先级 高于 或吧
++a
[解决办法]
++b&&++c;

----》等价于
++a
[解决办法]
 (++b&&++c);
[解决办法]
条件1 
[解决办法]
 条件2 && 条件3
因为&&优先级比
[解决办法]
高,所以相当于
条件1 
[解决办法]
 (条件2 && 条件3)
只要条件1为真,那么后面不会计算了,因为无论后面如何,结果一定为真。如果为假,才会计算后面。

热点排行