有以下程序main(){inti=1,j=2,k=3;
发布网友
发布时间:2024-10-04 17:53
我来回答
共1个回答
热心网友
时间:2024-11-16 20:39
if(i++==1&&(++j==3||k++==3))
printf(“%d %d %d\n”,i,j,k);
}
只有当条件成立时,输出语句才会执行。既然有输出则:
i++==1条件成立,说明i=2
++j==3条件成立,说明j=3
此时(++j==3||k++==3)后面的k++==3不管为何值,(++j==3||k++==3)均为真,所以k++==3被“短路”了,没有被执行,所以k不为4。
这里的关键是:C语言中的逻辑运算,当后续条件不论为何值,对整个条件判断无影响时,后续条件不再进行判断。