如果&&的优先级大于||的优先级,那么这个代码不应该首先评估--b && ++ c,因此输出应该是1 2 4 11.但是这里似乎是短路给1 2 5 10.请帮忙!
int x;
int a=1,b=5,c=10;
x=a++||--b&&++c;
printf("%d %d %d %d\n",x,a,b,c);
return 0;
Run Code Online (Sandbox Code Playgroud)
Luc*_*ore 14
不应该这个代码首先评估--b && ++ c
无运算符优先级不影响评估顺序.它只是意味着
a++||--b&&++c
Run Code Online (Sandbox Code Playgroud)
是等价的
a++||(--b&&++c)
Run Code Online (Sandbox Code Playgroud)
所以它仍然a++是首先被评估,因此使声明短路.
| 归档时间: |
|
| 查看次数: |
525 次 |
| 最近记录: |