int main() {
int a, i;
for (a = 1, i = -1; -1 <= i < 1; i++) {
a++;
printf("%2d\n", a);
}
printf("%2d", i);
return 0;
}
分析如下:
int main()
{
int a, i;
//问题在 -1 <= i < 1 按先左后右原则计算 -1<=i 为真 也就是 (-1<=i) 的值等于 1
//再计算 1<1 为假,不执行循环
for (a = 1, i = -1; -1 <= i < 1; i++)
{
a++;
printf("%2d\n", a);
}
printf("%2d", i);
return 0;
}
因为i的初始值就是-1,根本就进不了循环,所以还是初始值-1
-1 <= i < 1的结果为假,-1<=i返回真为1,1<1为假,所以进不了循环。