亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

為什么運算結果是0?

#include<stdio.h>

int main()

{

int a=0;

printf("%d\n",a++);

return 0;

a++還是++a都同等于a=a+1,在表達完畢后a的值不是都自增1嗎?那為什么這個運算結果是0啊? ? ? 求高手解釋一下。。。

正在回答

5 回答

a++是先取值再運算,而++a是先運算再取值,所以執行a++輸出結果為0,執行++a輸出結果為1.

0 回復 有任何疑惑可以回復我~
#1

qq_茬縌境宬長_0 提問者

求解釋
2016-12-30 回復 有任何疑惑可以回復我~

a++。計算機語言會先告訴你a是多少。再加。 加好的結果記憶了。但是不會顯示出了。所以a是未加時的結果
++a。先給你加好。在告訴你結果。而且前面的a++。加過一了。 所以a=1。然后再加一次再告訴你a是多少
區別。 一個是先輸出目前結果再運算。一個是先運算再告訴你最后的結果

0 回復 有任何疑惑可以回復我~
#1

Simon_______

你知道3-4練習題怎么解嗎。不懂
2016-12-31 回復 有任何疑惑可以回復我~
#2

qq_茬縌境宬長_0 提問者

a+b%(a+b)/a+a*b-b =3+4%7/a+a*b-b //先算括號里的 =3+4/3+3*4-4 //在求余數,注意:余數若大于除數,就等于他本身(除數),4/7=5余5。余數5大于除數4,所以余數是4 =3+1+12-4 //然后再算乘除法,余數忽略 =12
2017-01-01 回復 有任何疑惑可以回復我~
#3

qq_茬縌境宬長_0 提問者

寫錯了4/7=0.5余5
2017-01-01 回復 有任何疑惑可以回復我~
#4

Simon_______

非常感謝
2017-01-01 回復 有任何疑惑可以回復我~
#5

Simon_______ 回復 qq_茬縌境宬長_0 提問者

非常感謝
2017-01-01 回復 有任何疑惑可以回復我~
#6

qq_茬縌境宬長_0 提問者

不用謝,在這里面都是互相幫助,互相學習的嘛。
2017-01-01 回復 有任何疑惑可以回復我~
查看4條回復

其實我覺得可以這么理解,不知道你怎么想的。

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);?? (所謂的先加加再執行)

希望我這么說你可以理解我的意思吧,哈哈


2 回復 有任何疑惑可以回復我~
#1

qq_天一生水_0

你說的我懂了,謝謝
2016-12-31 回復 有任何疑惑可以回復我~

int a=0;

a原本的值就是0,為什么自增后還是0. ? 那句話說:”a++還是++a都同等于a=a+1,在表達執行完畢后a的值自增1".

我不明白的是 ?為什么原本是0自增后的值還是0.這自增運算符不就不起作用了嗎?

0 回復 有任何疑惑可以回復我~

int a=0;

我不明白,a++自增運算符在變量的后面,所以先取值0,然后再自增1,結果不是應該是1嗎?

求解 ?。。。

0 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消

為什么運算結果是0?

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號