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

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

自增自減算法疑惑

a++ --a 怎么計算呢?

?


正在回答

6 回答

a++表示先取之前的a值,再做加法運算;++a表示先做加法運算,再取現有a值。因此,若a=1,b=a++,此時b=1,a=2;如果求b=++a,此時b=2,a=2。--a和a--同理。

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

a++?? 表示先進行賦值,后面再加一。--a表示先減一,然后再賦值給a。

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

1,a++和--b你可以這樣子理解,設本來a=b=0;經過上面計算后,a的值為1,b的值為-1;但是c=a++等于0,這里c 取得是運算前的值,--b代表的是運算后的值,猜想b=?運算前的初值是0,經過減法運算后的值則為-1;即d=--b=-1

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

missyou012

a為什么等于1?
2016-03-03 回復 有任何疑惑可以回復我~

運算符在前面,先運算再取值,如 ++a; 如果a原來等于0,現在a等于1。取值也會是1;

運算符在后面,先取值再運算,如a++; 如果a原來是0,運算完a等于1,為下一次取值做準備,但本次取值因為是先取值,所以取值為0;

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

編譯器按照最長匹配原則從左到右來解析代碼,所以在語法上這句代碼被認為是?((a++)-- a)。

不過 ++ -- 這樣的自增減運算符的操作數必須左值(lvalue)。 a是左值,所以 a++ 是合法的,然而 (a++) 這個表達式的值是右值(rvalue),不允許再作為 -- 的操作數了,所以本句在語義上出錯了。最終編譯器會報錯。


另外,不要在一個語句中對同一個變量多次取值、賦值,這樣的結果很可能是未定義的。

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

就是+1和-1

左側內容中有講解啊


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

舉報

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

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

進入課程

自增自減算法疑惑

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

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

幫助反饋 APP下載

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

公眾號

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