c语言小白请教 i++ 问题,求指点!
本帖最后由 水鱼 于 2014-7-31 18:37 编辑#include<stdio.h>
main()
{
int i , j , m , n ;
i=8;j=10;
m=++i;n=j++;
printf("%d, %d, %d, %d\n" , i, j ,m ,n);
}
结果是 i=9, j=11 ,m=9, n=10 ,
为什么 i=9 搞不明白?请大虾指点下。谢谢!
我晕。。。。i++和++i都是实现自增操作啊。。结果都一样是i=i+1; i++ :后置自加运算符,表示先输出i的值在屏幕上,然后再把i加上1。
++i:前置自加运算符,表示先把i的值加上1,然后再把i的值输出到屏幕上。 前置就是先增加或者减少在使用
后置就是先使用然后再增加或者减少
这个小甲鱼有讲的。。。。。。 开始i=8 后来运行i++后i就是9了啊 i=8;j=10;
m=++i;n=j++;
printf("%d, %d, %d, %d\n" , i, j ,m ,n);
结果是 i=9, j=11 ,m=9, n=10 ,
原因如下:
当程式运行printf("%d, %d, %d, %d\n" , i, j ,m ,n);时,以下变量已作以下运算,所以会打印上述结果
i 自加1即8+1=9
j 自加1即10+1=11
m 是等于自加后的 i ,(++i 此式先被运算)
n 是等于自加前的 j
页:
[1]