1樓:匿名使用者
這個表示式無意義,編譯器會給出警告資訊。該表示式的值與編譯器相關
非要執行,看一下這句在gcc給出的反彙編
0x401476 mov eax,0x1
0x40147b sub eax,dword ptr [esp+0xc]
0x40147f mov edx,dword ptr [esp+0xc]
0x401483 imul eax,edx
0x401486 mov dword ptr [esp+0xc],eax
0x40148a mov eax,dword ptr [esp+0xc]
0x40148e mov edx,dword ptr [esp+0xc]
0x401492 imul eax,edx
0x401495 mov dword ptr [esp+0xc],eax
0x401499 mov eax,dword ptr [esp+0xc]
0x40149d add dword ptr [esp+0xc],eax
0x4014a1 mov eax,0x0
2樓:匿名使用者
整個表示式,從右往左看,2+(2*(2-(2*2)))=-2
設int a=12;表示式a+=a-=a*=a 的值是
3樓:四舍**入
計算出來的值為:-120
具體計算步驟如下
1、a*=a 為144
2、a-=(a*=a) 等價於
a-=144 即 a= a - 144 為-1323、a+=(a-=(a*=a))等價於a +=-132 即 a= a +(-132) 為 -120
4樓:匿名使用者
+=、-=、*=這三個運算子執行順序都是從右往左第一步 執行a=a*a a=144;
第二步 執行a=a-a a=144-144=0;
第三步 執行a=a+a a=0+0=0;
5樓:匿名使用者
結果為零。
a+=a-=a*=a 從右向左算;
a*=a a=a*a=12*12=144a-=a*=a a=a-a=144-144= 0a+=a-=a*=a=0+0=0
6樓:蘭色心事
明明是-264,算錯了答案別人看到會當真,一步步來 先算乘法再算減法得到的值代入最後算加法 結果-264
7樓:王子不騎馬的啦
計算出來的值為:-120
具體計算步驟從後往前看
a*=a 為144
a-=(a*=a) 等價於 a-=144 即 a= a - 144 為-132
a+=(a-=(a*=a))等價於a +=-132 即 a= a +(-132) 為 -120
8樓:艾默得
表示式可以寫成a=a+(a-(a*a));a*a=144;a-a=144-144=0;a+a=0+0=0;所以最終結果為0。
9樓:匿名使用者
補充一個點,複合賦值運算子是右結合運算,所以依次從右往左結合。如其他答主所示。
10樓:手機使用者
王子不騎馬是對的,王
子不騎馬是對的,王子不騎馬是對的,王子不騎馬是對的,王子不騎馬是對的,王子不騎馬是對的,王子不騎馬是對的,王子不騎馬是對的,王子不騎馬是對的。
說這麼多還不如執行一下,真實的結果總是好多差評,本來都不準備說了,看到他差評那麼多還是說一下吧
11樓:酆司越成
c不過糾正上面老兄的一個小錯誤。。賦值運算子都是從右到左的!。。
12樓:竹華勤若雁
cddc
我來解釋吧
1,a=a+(a=a-(a=a*a)),=是從左向右執行的,於是在執行a=a-a時,a=0了,然後就一直是0了
2,巨集定義,d=(a+b)+(a+b)*c,所以803,ab是明顯錯誤,字串是指標常量,不能這樣賦值,仔細分析,p和a是一樣的資料型別,都是字元指標,但p沒初始化!所以是d
4,很明顯k不是0,不執行迴圈
以上各題我都編譯實驗過,保證正確
13樓:愛笑的
先a*a為144,然後a=a-a*a=-132,現在a的值已被賦值為-132,然後a=a+a即-132+(-132)=-264
若有定義int a =10,則表示式a+=a-=a*=a的值是多少啊
14樓:
a+=a-=a*=a的值為0
解析:左結合:先做a*=a, 因為a=10,a*=可寫為a=a*a=100 此時a的值為100
a-=a 可寫為a=a-a=0,此時a 的值為0a+=a可寫為a=a+a=0
綜上:a+=a-=a*=a的值為0
15樓:
#include
int main()
顯示的答案是 0; 連續賦值 的規則 是從右到左~我們分細點
1: a+=a-=a*=10
2: a+=a-=100
3: a+=0
4: a=0
所以答案是 0
lz 明白了嗎~~
16樓:1我不是吃貨
-80。
我想的是,從左往右算,那麼左邊的a的值是10不會變的。所以就變成了10+=10-=10*=10
10+=10-=100
10+=-90
-80嗯嗯,應該沒錯。
17樓:聽不清啊
表示式a+=a-=a*=a的值=0
18樓:好時光悄悄溜走
0是這樣執行的:
a=a*a;a=100
a=a-a;a=0
a=a+a;a=0
身為一個優秀的程式設計師
建議不要用可讀性如此低的程式
19樓:丨嗚呼哀哉
= += -= *= /= %= &= ^= |= <<= >>= 是右結合性的;
然後光看本題,題目中出現了「-=」,也就是會遇到自己減自己,結果肯定是0,後面操作也是自己跟自己操作,無論如何結果都是0;
以後看到這樣的表示式,如果出現「-=」,結果差不多都是0;
若int a=2,則執行完表示式a–=a+=a*a後,a的值是幾
20樓:匿名使用者
2*2=4,a+= 4 => a為6,表示式也為6
a-=6,因此a為0
21樓:go學龍
a的值為0
a += a*a 》a = a+a*a=6
a -= a += a*a ?>> a = a - (a += a*a) = 0
設int a=12,則執行完語句a+=a-=a*a後,a的值是_____(
22樓:匿名使用者
-264。
1、先計算a-=a*a,得到a=12-12*12=-132;
2、a+=-132,得到a=-132-132=-264。
+= 加後賦值,變數+=表示式 如:a+=3;即a=a+3;-= 減後賦值,變數-=表示式 如:a-=3;即a=a-3。
賦值運算子的計算順序是從右到左,大多數運算子結合性是從左到右,只有三個優先順序是從右至左結合的,它們是單目運算子、條件運算子、賦值運算子。而且它的優先順序別低於其他的運算子,所以對該運算子往往最後讀取。
23樓:匿名使用者
結果為:-120
把以下**儲存為html檔案,雙擊執行即可知道!
24樓:旅林
int a=12
故a-=144,得a=0
a+=0a=0
若有定義 int a則表示式a a的值為9請高手說明下這個過程
倒黴熊 二維陣列是按行儲存的也就是如下這樣 a 0 0 a 0 1 a 0 2 a 0 3 a 1 0 a 1 1 a 1 2 a 1 3 a 2 0 a 2 1 a 2 2 a 2 3 而a表示的就是a 0 0 所在的地址。所以 a 2 1 a的值為9。 陽光上的橋 請你在草稿紙上畫一個三行 四列...
若已定義int a,則表示式a 10,a 10,a 的值為
答案為10。解題過程如下 a 10,a 10,a 是一個逗號表示式,逗號表示式的規則是什麼第一表示式計算起,直到計算最後一個表示式,最後一個表示式的值是逗號表示式的值。先計算a 10,值等於10,變數a也被賦10的值。再計算a 10,的值為20.最後計算a 得值為10,a得值為11.但整個表示式的值...
C語言題求問已知int a 23,2,1則表示式「a」的值是 B
首先a 0 0 3 a 0 1 2 a 0 2 1 而且都是int整型,所以結果也是整型3 2 1 1 請叫我路人已 3 2排放是 a 0 0 a 0 1 a 1 0 a 1 1 a 2 0 a 2 1 首先 a 0 0 3 a 0 1 2 a 0 2 1 因此 3 2 1 1 1 1 a 0 0 ...