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

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

搞不懂 自增 增哪了

單獨寫一個

#include <stdio.h>

int main()

{

? ? int a = 100;

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

return? ? 0

}??????????????????結果還是100? ? 說好的自增呢? ?不是說

a++還是++a都等于 a=a+1嗎? 既然a得值是100? 結果不應該是a=100+1? ? 所以 a=101的嗎

正在回答

3 回答

a++ 是取值后在運算 所以 a=100 ,

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

qq_慕九州8513951

但是這里輸出的不是a++的值嗎?為什么還是a的值,求指導
2019-01-11 回復 有任何疑惑可以回復我~
#2

qq_慕仰3335730 回復 qq_慕九州8513951

先取值在運算,第二次表達式中a的值才為101,第一次的取值還是不變的,為100
2019-01-23 回復 有任何疑惑可以回復我~

例如:C語言中a=1,a=a+++1,a+++1這兩個有什么區別,前者值是3,后者是2

a=a+++1:先a++,a變為2 (即這個a++完了以后,a已經變成了2),然后開始2+1,然后再將2+1賦給a;
而a+++1:則是先a++,即a變成了2,然后加1,因為加1后并沒有賦值給回a,所以a還是2。

因為你的表達式中a沒有將取得的值再一次賦值給回a,但如果你是++a,那么程序中的結果就是101了

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

首先a++是輸出a=100在加1,所以第一個結果是100,但運行下條語句時a的值已經是101了

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

qq_精慕門0566073

恍然大悟,謝謝
2019-02-18 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消

搞不懂 自增 增哪了

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

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

幫助反饋 APP下載

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

公眾號

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