#include<stdio.h>
int main()
{
int n=0;
while(n++<3);
printf("n is %d\n",n);
getchar();
printf("That's all this program does,\n");
return 0;
}
其中while(n++<3)如果后面没加分号,会输出3个printf语句,但是加上分号后,n的值就等于4了
用汇编查看了下,下面是有分号的:
下面是没分号的:
有带分号的while语句多了个00401040 jmp main+1Fh (0040102f),结果执行多出一次循环
为什么会这样?是不是分号被编译器解释成了jmp指令?