在c語言中複合的賦值運算子怎麼處理

2021-05-05 16:55:07 字數 2757 閱讀 8049

1樓:

x+=x-=x*x;

你要正確拆開這個式子很重要

首先是 x-=x*x

然後是 x-=36

繼續 x=x-36

x=-30

x+=-30

x=-30-30

=-60

2樓:匿名使用者

c語言的這個運算應該從右向左賦值。對,頂樓說的對

3樓:

把x=6代入公式,然後從右向左算。

4樓:及珹彤白亦

要點1:

*=,+=,-=,%=

等符號的應用是同道理的:

即把左邊的移過右邊運算(右邊用括號包住,表示先運算),結果再給左邊(注意左邊只能是變數,不可為表示式)a+=

b等價於a=a

+(b);

(b可以是值或表示式,這裡的=仍是賦值號哦,b打括號是因為它可以是表示式)如x

+=1;

*****

x=x+1;x+=

1+2+3;

*****

x=x+(1+2+3);x+=

a+b+1

====

x=x+(a+b+1);

要點2:就個這樣的符號的運算,則從最右邊的那個開始計算,一直到左邊例如:a+=b

%=a-=b

--------------3------2----1(3個這樣的符號)

從*最右邊*來分析(按符號順序):

1:a=a-(b)

,得到了a的新值

2:b=

b%(a),

得到了b的新值

(注意該a是新值哦)

3:a=a+(b),

再次得到了a的新值

(注意右邊的a也是1的新值,b是2的新值)懂了上面,你應該可以分析自己的了~~~

c語言中的複合賦值運算子「%=」怎麼用?

5樓:匿名使用者

要點1: *=,+=,-=,%= 等符

bai號的du應用是同道理的zhi: 即把左邊的移過右邊

dao運算(右內邊用括號包住,容表示先運算),結果再給左邊(注意左邊只能是變數,不可為表示式)a += b 等價於a = a + (b); (b可以是值或表示式,這裡的=仍是賦值號哦,b打括號是因為它可以是表示式) 如 x += 1; ***** x= x+1; x += 1+2+3; ***** x =x+(1+2+3); x += a+b+1 ==== x= x+(a+b+1); 要點2:就個這樣的符號的運算,則從最右邊的那個開始計算,一直到左邊例如: a += b %= a -= b--------------3------2----1 (3個這樣的符號)從*最右邊*來分析(按符號順序):

1: a=a-(b) ,得到了a的新值 2:b = b%(a), 得到了b的新值 (注意該a是新值哦) 3:

a=a+(b), 再次得到了a的新值 (注意右邊的a也是1的新值,b是2的新值) 懂了上面,你應該可以分析自己的了~~~

6樓:匿名使用者

%=的用法是,把%移到右邊。比如a %= b;那就把a和%移到右邊,但左邊還有一個a。最後等於內a = a % b;像樓主說的a+=b%=a+b;因為賦容值語句是從右到左計算的,所以先要計算最左邊的a+b;也就是成這樣:

a+=b%=(a+b),根據上面說的,%=用法,現在把b和%移到右邊,那就成a += b = b %(a+b);其實計算出b %(a+b);的值,然後賦值給b,最後是a +=b,然後把a和+移過右邊,成a = a + b;

c語言的複合賦值運算子

7樓:gta小雞

a=a+1,首先要求來

賦值號右側的表達自式a的值,然後將

它與1相加,接著求賦值號左側的表示式a的值,最後將加法的結果寫回a中,所以表示式a被求值了兩次;a+=1,首先求得賦值號左側的表示式a的值,將這個值加上1,然後寫回a中,表示式a只被求值了一次。

這是理想的情況,實際中現代編譯器都非常智慧,在開啟編譯優化時,a=a+1這樣的語句將被直接優化為a+=1甚至是a++。

8樓:戲遠巴乙

第一步:

baia=a/(a-6),a的值傳遞給第二步du進行下一zhi步計算

第二步:daoa=a*a,a的值回傳遞給第三步進答行下一步計算第三步:a=a+a,a的最終結果在這裡記住兩句話:

1、=賦值號,自右向左進行;

2、a+=1相當於a=a+1。這個a/=a-6先把a-6看成一個數,a/=1不就是a=a/1嘛;

請問c語言複合賦值運算子的優先順序是什麼?

9樓:匿名使用者

首先要明白的是復bai合運算其實也du

就是兩條語句的簡zhi單表示。舉個例dao子:

a += 2這句復內合運算表示式。將它拆分就是:容a = a + 2;

在運算子優先順序表中,賦值運算的優先順序是最低的。因此會先計算a+2;然後將結果重新賦值給a;

其他的複合賦值運算子也是這樣。

10樓:問心之心

面對c語言優先順序的問題,你只要去查c語言優先順序的表就可以知道了,複合賦值運算子在14個優先順序,介於條件運算子和逗號運算子之間!

11樓:匿名使用者

我沒學到的 不好意思

複合賦值運算子講解

c語言中卻運算子如何使用,C語言中取反運算子如何使用

c語言經典例子之按位取反運算子 運算子 是邏輯非運算子 才是按位取反運算子。經過 運算後,回運算結果只答 有0或1 而經過 運算後,結果有多種,取決於運算元。下面通過例項來介紹這個運算子的使用方法 int a 10,b,c b a 運算後b 0,因為a不等於0 即為真 所以取非後等於0 為假 c a...

C語言中怎樣理解三目運算子條件運算子的右結合性

這裡涉及了c中的優先順序 結合性 求值順序。結合性只有在相同優先順序的運算子間才起作用,比如a b c,與 優先順序不同,這裡根本不用去管結合性。而a b c則需要進行結合性考慮了,如果 為左結合性,那麼應該理解為 a b c,如果 為右結合性,那麼應該理解為a b c 當然了,我們已經知道 為左結...

C語言逗號的作用C語言中逗號運算子怎麼用

c語言中,多個表示式可 以用逗號分開,其中用逗號分開的表示式的值分別結算,但整個表示式的值是最後一個表示式的值。假設b 2,c 7,d 5,a1 b,c d 3 a2 b,c d 3 對於第一行 有三個表示式,用逗號分開,所以最終的值應該是最後一個表示式的值,也就是d 3,為8,所以a1 8。對於第...