今天看了老师的视频有如下内容:
int x = 1,y = 1,z =1;
(++x) || (y++) && (z++);
printf("x = %d,y = %d,z = %d\n",x,y,z);
结果为:
x = 2,y = 1,z = 1
解释为(++x)为1之后程序“或短路”,这样后面的就不执行了
小弟新人,初级黑马,有一疑问
&&的优先级为11,||的优先级为12,为什么不是先运算&&,在进行||的运算
相当于给后面加了个括号
如下:
(++x) || ((y++) && (z++));
这样不是y++和z++都会进行运算
输出结果为:
x = 2,y = 2,z = 2
还请赐教,多谢! |
|