关于c运算符有不解,自增自减以及逻辑运算符的混合

发布时间:2024-05-20 11:53 发布:上海旅游网

问题描述:

a=0; b=1; c=2;
d=a++&&b++&&- -c;
运算结果:运算结果: d=0,a=1,b=1,c=2 ???为什么,算的顺序是什么?自增的后缀运算符不是要先进行其它运算再自增吗?
还有:
a=0; b=1; c=2; d=a++||b++||- -c;
运算结果: d=1,a=1,b=2,c=2 也请解释,谢谢
谢谢 hanwt139,但是第一个中a++,应该是1啊,那就是为真,那么就要继续判断b++啊???

问题解答:

楼主还是不理解自加自减。
a++的意思是先使用a的值,后做自加运算。所以表达式先使用了a=0的值,因此d是0,然后做了a=a+1的运算,所以a=1.

你这道题的关键不是++和--,而是&&。
在C语言中,&&的左面如果为假的话,&&后面的表达式是不会被计算的。
所以b++和--c的错做都没有执行,只有a++执行了。
最后应为等号右边的表达式的值为假,所以d=0.

热点新闻