若有以下定義int m 5,y 2,則計算表示式y y m y後的y值是

2021-04-21 18:57:41 字數 1350 閱讀 5934

1樓:匿名使用者

y值是bai-16。

從左往右分解,y+=y-=m*=y 就是

du y=y+(y-=m*=y)

y-=m*=y 就是 y=y-(m*=y)

m*=y 就是 m=m*y

那麼就等於

m=m*y; //m=10, y=2

y=y-m; //m=10, y=-8

y=y+y; //m=10, y=-16

擴充套件資料zhi

:dao

由於字尾表示式不需考慮運算子的專優先順序,因屬此計算較簡單。計算過程為:從左到右依次掃瞄字尾表示式,遇到運算子,則與運算子前邊連續兩個運算元做運算。

由於遇到運算元時,不能立即進行計算,因此設立乙個棧(運算元棧),用於存放運算元。具體運算過程如下:

1、從左到右依次掃捕字尾表示式,每次取出乙個字元;

2、若字元是運算元,則入棧;

3、若字元是運算子,則連續出棧兩個運算元,計算它們的值,然後把運算結果入棧;

4、重複步驟1~3,直至表示式結束,棧中最後乙個元素即是字尾表示式的值。

2樓:匿名使用者

這種連線運算,其實很簡單的,運算順序知道了就ol!

運算順序由右向左,首先運算m*=y值為10,再執行 y-=10值為-8,最後執行y+=-8值為-16,就這麼簡單,希望能幫助你……

3樓:匿名使用者

選c,p[0]指向a[1],也就是&a[1][0],二維陣列在記憶體中的儲存方式和一維陣列一樣也是順序存放的,所以p[0]+1就是a[1][0]的下乙個元素

4樓:匿名使用者

大哥的問題真是稀奇古怪。按照運算次序,先做m*=y,得到m=10,再做y-=m,得到y=-8,再做y+=y,得到y=-16。

5樓:匿名使用者

#include

using namespace std;

__int64 hash[120][100000];

int main()

若有以下定義int x=3,y=2,則表示式y+=x–=y後的y值為

6樓:匿名使用者

y = y + (x-=y)

y = y + (x = x - y)

y = y + (x = 3 - 2) 此時,x = 1y = y + 1

y = 2 + 1

y等於3,x等於1

7樓:育知同創教育

一步一步來y+=x是5

5-=y是多少呢就出來了

答案是3。

若有定義intx3,y4,z,則表示式zyx

1 這就相當於乙個邏輯判斷式 左邊是乙個邏輯表示式 右邊也是 左右邏輯表示式的值均為1 1 1 所以為真 即1 定義 int x 3,y 4,z 5 則表示式 x y z 1 y z 2的值是 1首先 優先順序最高,故 x y 0,然後根據算術運算子的優先順序高於 繼續計算0 z 1 4,和y z ...

若有以下的定義和語句,則值為5的表示式是 int a1,2,3,4,5,6,7,8,9,

a是6b是a 5 6 c是a 4 5 d是a 6 7 說明語句如下 int a 10 1,2,3,4,5,6,7,8,9 p a 則數值為6的表示式是 d。表示式 p a 說明p指向a 0 的位置 那麼 p 6 a 0 6 7 a錯 p指向a 0 的位置,則p 6 指向a 6 的位置,那麼 p 6 ...

c語言若有定義語句int b2則表示式b《2b 的值是

我感覺這題答了以後 採納率又會下來。2 的二進位制形式 0010 b 2 1000 8 3 b 3 2 1 所以最後的表示式的值就是 8 至於你說的為什麼3 b 1.首先你得分清 與 運算。是按位或 就是你說的 011 010 後結果為 011 而在 的世界裡,只認兩個值 0 和 1。即真和假 所有...