猿问

想问问这题为什么最后结果为011

#include<stdio.h>


void main()

{

int x=1,y=1,z=1;

--x&&(--y||--z);

printf("%d%d%d",x,y,z);

}


福工刘德华
浏览 1021回答 1
1回答

onemoo

&& 运算符会先求左侧操作数的值,只要左侧的值为 0 就不再求右侧操作数的值,整个 && 表达式的值直接为 0。你这里 --x 表达式的值为 0,所以这个 && 表达式求值结束。而右操作数(--y||--z)则根本不会被求值。这样 y 和 z 的值都不会变化,只有 x 会自减。
随时随地看视频慕课网APP
我要回答