写程序用while(i++)碰到一个问题,i的初始值没有进入循环体,后来验证后发现,i是先加1,再进入的循环体。
测试代码
#include <stdio.h>
int main(void)
{
int i = 0;
while(i++ < 10)
printf("i = %d\n", i);
}
运行结果:
i的初始值0没有被打印,说明 i= i+1之后再进入的循环体;
i = 10被打印出来,说明while(i++) 相当于 while(i < 10, i = i + 1),先判断i的值,然后加1,最后进入循环体。
./a.out
i = 1
i = 2
i = 3
i = 4
i = 5
i = 6
i = 7
i = 8
i = 9
i = 10