C语言中 int a=0,b=0,c=0; if(a&&++b) c++; printf("%d,%d\n",b,c); b和c为什么都等于0

如题所述

因为a=0所以&&右边的就被短路了,不被执行, 所以最后a, b, c的值都不变,都为0
温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2018-03-02
c语言中&&是一种双目运算符,表示与运算,而当左边所给表达式或变量为0时,不再计算右侧,整个表达式为零。追问

若a=1的话 b和c也就都等于1了是这样吗

本回答被提问者和网友采纳
第2个回答  2015-06-18
只要条件a为假,就不会执行++b 和 c++了,所以b和c都等于0追问

if(a&&++b)
这个什么意思呢