前不久群里的一个朋友问一个题目:
#include <stdio.h>
int main (void)
{
int a = 0;
for (int i = 0; i < 10; i++) {
a = a++; //先赋值
}
printf("%d\n",a);
return 0;
}
运行结果是:
0
在这个程序当中,无论把循环次数更改多少次,运行结果都还是为a的初始值,其原因在于,首先将 'a' 赋值给 'a' ,即无论循环多少次,变量a最终会被赋值0。
将上述代码稍微修改一下:
#include <stdio.h>
int main (void)
{
int a = 0;
for (int i = 0; i < 10; i++) {
a = ++a; //先自增
}
printf("%d\n",a);
return 0;
}
运行结果是:
10
再改一下循环体内部的a:
include <stdio.h>
int main (void)
{
int a = 0;
for (int i = 0; i < 10; i++) {
a++;
}
printf("%d\n",a);
return 0;
}
运行结果仍然是:
10
网友评论