C语言运算符优先级与短路求值示例:++a||++b&&++c
执行下列语句后a的值为(2),b的值为(1)。
int a,b,c;
a=b=c=1;
++a||++b&&++c;
解释一下内容:
执行完语句后,a的值为2,b的值为1。
首先,根据赋值运算符的右结合性,表达式a=b=c=1的值为1,且a、b、c的值都变为1。
接下来,根据短路逻辑运算符的规则,++a||++b&&++c的运算顺序为先计算++a,再计算++b和++c。由于++a的值为2,非零值视为真,所以整个表达式的值为真,不再计算后面的表达式。因此,++b和++c不会执行,b和c的值不会改变。
最终,a的值为2,b的值为1。
原文地址: https://www.cveoy.top/t/topic/o4ap 著作权归作者所有。请勿转载和采集!