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

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

自增自減是怎么算的?

比如:

int i=0;

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

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

運行之后是0,2。為什么不都是1呢?

里面說a++和++a都等于a=a+1,是不是說錯了?

正在回答

3 回答

i++是先取得i的值,然后再讓i=i+1;而++i,則是先有i=i+1,然后再取i的值。這個地方的第一個printf里的i++,因為先取i的值所以是0,但這一步之后i=i+1=0+1=1,然后第二個printf里的++i是先算i=i+1=1+1=2,然后再輸出i=2 。

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

慕粉小金 提問者

非常感謝!
2016-07-30 回復 有任何疑惑可以回復我~

第一個"i++"是取i=0,然后直接輸出為0,再進行i=i+1的計算,即第二個printf之前i=1,第二個“++i”是先進行i=i+1,計算的值是2,輸出。所以運行的結果是0,2。

“i++”是先取值在計算;“++i”是先計算在取值。

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

1、i++:先取值,再執行+1;因i原始值為0,所以此處輸出0;(但執行完i++之后,i=1)

2、++i:先執行+1,再取值;在上一步的基礎上+1,所以此處輸出2。

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

舉報

0/150
提交
取消
C語言入門
  • 參與學習       927001    人
  • 解答問題       21533    個

C語言入門視頻教程,帶你進入編程世界的必修課-C語言

進入課程

自增自減是怎么算的?

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

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

幫助反饋 APP下載

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

公眾號

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