c语言的短路求值 int main() { int a=3,b=3; (a=0)&&(b=5); printf("a=%d,b=%d\n",a,b); (a=1)||(b=5); printf("a=%d,b=%d\n",a,b); return 0; } //a=0,b=3; //a=1,b=3; 由此可看出,b始终等于3。那是因为在第一个&的表达式中,a=0为假直接判定整个表达式为假,后面不再进行运算了;而同理第二个|的表达式中,a=1为真直接判定整个表达式为真,后面的b=5直接不进行。