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

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

int a,c=5; a=2+(c+=c++,c+8,++c); 則 a=?

int a,c=5; a=2+(c+=c++,c+8,++c); 則 a=?

12345678_0001 2019-05-08 11:07:37
int a,c=5; a=2+(c+=c++,c+8,++c); 則 a=
查看完整描述

3 回答

?
繁華開滿天機

TA貢獻1816條經驗 獲得超4個贊

逗號表達式從左往右依次計算,其結果是最右邊的表達式的值。逗號表達式具有最低優先級。
這個問題重點在括號里面的計算過程:
首先計算c += c++;
c++的值是5,c的值是6,接著c += 5, 所以c的值是11。整個表達式的值是c,即11
然后計算c + 8, 結果是19,表達式的值是19
最后計算++c,c的值由11變成12,整個表達式的值是c, 即12
所以a = 2 + (11, 19, 12)
a = 2 + 12 ,a的值是14

查看完整回答
反對 回復 2019-05-13
?
心有法竹

TA貢獻1866條經驗 獲得超5個贊

int c=6;
int a;
a = 3 + ( c+=c++;c+8;++c);
計算是從左到右的。先括號。同時,c++是先執行操作,后+1. ++c是先加1,再執行操作。

如果是這樣的。則
c+=c++;等價于c= c + c++;c= 6 +6+1; 這時候c=13
c+8這個無意義。沒賦值。
++c,這時候c=14
a=3+14=17



查看完整回答
反對 回復 2019-05-13
?
炎炎設計

TA貢獻1808條經驗 獲得超4個贊

a=17 按計算順序如下:

  1. c+=c++     // c=6+6=12 然后 自加1 等于13

  2. c+8 // 因為是逗號表達式  對c的值沒有影響,不用考慮

  3. ++c        //13+1=14

  4. a = 3+14=17


查看完整回答
反對 回復 2019-05-13
  • 3 回答
  • 0 關注
  • 1191 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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