在代碼運行中,前++和后++的區別。
#include <stdio.h>
int main()
{
? ? int x = 1,y=10;
? ? x=x*y;
? ? x++;
? ? printf("x=%d\n",x);
? ??
? ? return 0;
}
代碼中將x++;換成++x;為什么結果是一樣呢?請幫忙解答!
#include <stdio.h>
int main()
{
? ? int x = 1,y=10;
? ? x=x*y;
? ? x++;
? ? printf("x=%d\n",x);
? ??
? ? return 0;
}
代碼中將x++;換成++x;為什么結果是一樣呢?請幫忙解答!
2016-03-03
舉報
2016-03-03
因為這個就是單純的自增啊,所以x++和++x沒什么區別。如果x++參與運算了那就不一樣了,例如,a=2,x=3,表達式a*x++的值為2*3=6,表達式算完以后x要自增1,所以x的值就是4了。
而a*++x的值就為2*4=8了,這是因為x先自增了,再參與運算。
總結一點就是,++前置,先自增再參與運算;++后置,先參與運算,自身再自增。
2016-03-03
++在前是先自加1,再取值。++在后是先取當前值再自加1。但是無論++前置還是后置兩者最后都會自加1,即都會執行x=x+1,所以該程序最后輸出的a都是一樣的,如果改為printf("%d\n",x++)和printf("%d\n",++x)則兩者結果不一樣。