#include<stdio.h>
int main()
{
int i,x=10;
for(i=0;i<7;i++);
{
x++;
}
printf("%d",x);
}
Run Code Online (Sandbox Code Playgroud)
产量: 11
无论for循环迭代多少次,x的值都保持为11.为什么呢?
从这里删除分号:
for(i=0;i<7;i++);
Run Code Online (Sandbox Code Playgroud)
分号使for循环具有空体.它使它等同于
for(i=0;i<7;i++){}
Run Code Online (Sandbox Code Playgroud)
在编译器中包含警告标志(-Wextra在GCC中)会发出有关这类问题的警告.