c语言的i++

来源:百度知道 编辑:UC知道 时间:2024/07/04 09:40:30
main()

{
int i,j,k,n;
i=1;
j=i+++1+1+1+1+1+1;
printf("%d",j);
printf("%d",i);

为什么j=7,不是说先赋值,在算后面的吗?j=1吧?
}

后缀++会先使用变量原来的值进行运算,即1加上后面6个1,所以j的值为7。前缀++会先改变变量自身的值,再进行其它运算。可以这样测试一下:
j = ++i+1+1+1+1+1+1;

不是先赋值,而是i的值先不变进行运算等运算完成之后i再加加。
因此,j=1+1+1+1+1+1+1=7,计算完成后,i++,

i++是先运算,本条语句执行完后在执行i=i+1;
++i是先执行i=i+1后在执行本条语句!

i++,++i都是自增1;
i++表示先执行语句,再进行+1操作,
++i表示先进行+1操作,在执行本语句。

好好把书上那里的看一便``你自己解决的你会一直记住的`