有人可以解释一下为什么这一短代码会返回1?
int i = 0;
if(i++) i++;
printf("%d", i);
我的意思是在检查if语句时i
必须递增,否则结果不会是1.但是随着它的增加,应该再次增加,结果为2。
更好的是,为什么这行代码会产生2?
int i = 0;
if(++i || i++) i++;
也是这个
int i = 0;
if(++i && i++) i++;
返回3.
答案 0 :(得分:2)
if(i++)
在递增之前检查i
的值。因此,自i=0
以来检查失败,在检查之后,i
将在离开if
条件之前递增,使其等于1. if(++i || i++)
通过++i
,因为在检查条件之前评估i++
,条件为1,条件为真,然后react-native run-android
将导致2。