首先上代码
#include<stdio.h>
int main()
{
int i=8;
printf("%d\n%d\n%d\n",i,++i,i++);
}
结果是
由于我用的是 Devc++,printf函数输出表列中的求值顺序为自右向左,所以我们自右向左分析!!!
i++等价于:
int x=i; 此时x的值为8
i=i+1; 此时i的值为9
return x; 返回x的值
++i等价于:
现在i的初始值为9(经过i++后)
i=i+1; 此时i的值为10
return i; 返回i的值
不难看出 ++i 和 i++ 都有自增的一步,关键是返回值
i++ 是将自增前的值赋给新的变量x 然后返回x的值
#include<stdio.h>
int main()
{
int i=8;
printf("%d\n%d\n%d\n%d\n%d\n",i,i++,i++,i++,i++);
return 0;
}
结果:
12
11
10
9
8
++i返回的是i的最终结果
#include<stdio.h>
int main()
{
int i=8;
printf("%d\n%d\n%d\n%d\n%d\n",i,++i,++i,++i,++i);
return 0;
}
结果:
12
12
12
12
12