為什么運算結果是0?
#include<stdio.h>
int main()
{
int a=0;
printf("%d\n",a++);
return 0;
a++還是++a都同等于a=a+1,在表達完畢后a的值不是都自增1嗎?那為什么這個運算結果是0啊? ? ? 求高手解釋一下。。。
#include<stdio.h>
int main()
{
int a=0;
printf("%d\n",a++);
return 0;
a++還是++a都同等于a=a+1,在表達完畢后a的值不是都自增1嗎?那為什么這個運算結果是0啊? ? ? 求高手解釋一下。。。
2016-12-29
舉報
2016-12-29
a++是先取值再運算,而++a是先運算再取值,所以執行a++輸出結果為0,執行++a輸出結果為1.
2016-12-31
a++。計算機語言會先告訴你a是多少。再加。 加好的結果記憶了。但是不會顯示出了。所以a是未加時的結果
++a。先給你加好。在告訴你結果。而且前面的a++。加過一了。 所以a=1。然后再加一次再告訴你a是多少
區別。 一個是先輸出目前結果再運算。一個是先運算再告訴你最后的結果
2016-12-30
其實我覺得可以這么理解,不知道你怎么想的。
printf("%d\n",a++);
和
printf("%d\n",++a);
這兩句程序都是要拆解執行的,那么我認為程序運行機制的不同,導致執行結果的改變;
printf("%d\n",a++);?? =》 ? printf("%d\n",a);? a = a +1;?? (所謂的先執行再加加)
而
printf("%d\n",++a); ? =》 ? a = a + 1; printf("%d\n",a);?? (所謂的先加加再執行)
希望我這么說你可以理解我的意思吧,哈哈
2016-12-29
int a=0;
a原本的值就是0,為什么自增后還是0. ? 那句話說:”a++還是++a都同等于a=a+1,在表達執行完畢后a的值自增1".
我不明白的是 ?為什么原本是0自增后的值還是0.這自增運算符不就不起作用了嗎?
2016-12-29
int a=0;
我不明白,a++自增運算符在變量的后面,所以先取值0,然后再自增1,結果不是應該是1嗎?
求解 ?。。。