C 複合賦值運算子問題,c語言,複合賦值運算子

2022-05-14 16:08:05 字數 3505 閱讀 2349

1樓:匿名使用者

執行順序:

1 . a++ * 1 /2

2. a被替換為31: (31) * 1 / 23.

計算後得到 31 / 2 = 15(小數被忽略)4. a = a+1 = 31 + 1 = 32最後a = 32,表示式a++*1/2 = 15

2樓:牽興朱媚

a+=x等價與a=a+x

所以a+=a-=a*a就等價於a=a+(a-=a*a)a-=x等價與a=a-x

所以,又有a=a+(a-=a*a)等價於a=a+(a=a-a*a)a=5時

先算括號,括號裡先算乘法,再算減法,最後將減法結果賦值給aa*a=25

a-a*a=-20

a=a-a*a=-20

括號算完算a+()

a+a=-20+(-20)=-40

所以最後a=-40

3樓:倪永寧士嫻

因為*this

==other只是比較兩個string型別變數的值是否相等。而且該語句是否合法還取決於你是否過載了==號操作符。

這裡過載賦值運算子,比較this和&other的原因是要確保不是自己給自己賦值。即this和&other的值不能一樣,一樣的話代表自己給自己賦值。

明白了吧?

c語言,複合賦值運算子

4樓:匿名使用者

首先+=和*=優先順序相同,且都是右結合,所以上述語句等價於:

k += ( i *= k);

等價於:

i *= k; // i = i*k

k += i; // k = k+ i;

5樓:戶哲茂

k+=(i*=k)

也就是先

i = i+k;

然後k=k+i;

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

6樓:

x+=x-=x*x;

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

首先是 x-=x*x

然後是 x-=36

繼續 x=x-36

x=-30

x+=-30

x=-30-30

=-60

7樓:匿名使用者

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

8樓:

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

9樓:及珹彤白亦

要點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的新值)懂了上面,你應該可以分析自己的了~~~

賦值運算子:= += -= *= /=

10樓:尚學堂科技****

關於上面的運算子作如下解釋:

public class test}

在c++的複合賦值運算子中的+=、-=、*=、/=、%=、<<=、>>=、&=、^=、|=。分別是什麼意思阿?

11樓:手機使用者

舉個例子說明吧,如 i += 2,就相當於 i = i + 2,因此你所述的運算子都可以這麼理解和學習。

c語言中有關複合運算子計算的問題

12樓:

由於複合運算子是右結合的,所以

a+=a*=a/=a-6

==a+=(a*=(a/=(a-6)))

==a+=(a*=(a/=1))

==a+=(a*=a)

==49+49

==98

我不清楚你的答案56是怎麼來的!

13樓:

答案是98,不是56,分析如下

a+=a*=a/=a-6,如下

a=a+(a*=a/=a-6)

a=a+(a=a*(a/=a-6))

a=a+(a=a*(a=a/(a-6)))a=a+(a=a*(a=a/1))

a=a+(a=a*(a=7))

a=a+(a=a*7) // 注意,此時a的值是7a=a+(a=7*7)

a=a+(a=49)

a=a+49 // 注意此時a的值是49a=49+49

a=98

c語言中複合位運算賦值(&=,|=,^=,>>=,<<=)表示什麼意思?

14樓:匿名使用者

&=,按位與後賦值,變數&=表示式;

|=,按位或後賦值,變數|=表示式;

^=,按位異或後賦值,變數^=表示式;

>>=,右移後賦值,變數》=表示式;

<<=,左移後賦值,變數<<=表示式;

類似的還有,

/=,除後賦值,變數/=表示式;

*=,乘後賦值,變數*=表示式;

%=,取模後賦值,變數%=表示式;

+=,加後賦值變數,+=表示式;

-=,減後賦值變數,-=表示式;

這些是c/c++獨有的複合賦值運算子,結合方向,從右向左。是一種縮寫形式,使得對變數的改變更為簡潔,更有效率。

15樓:匿名使用者

位運算子與賦值運算子可以組成複合賦值運算子如 :&=, |=, >>=, <<=, ∧ =

和+=,-=,*=,/=類似.

即把左邊值與右邊值位運算之後賦值給左邊變數.

例如 ,a & = b 相當於 a = a & b 。 a << =2 相當於 :a = a << 2 。

明白了沒有呀?

16樓:匿名使用者

舉個例子:

a+=5 相當於 a=a+5

即先進行運算再賦值

c語言賦值運算子,C語言賦值運算子

a a a a 分步 1 a a a a a 9 a 9 a a 9,a 6 2 a 6 a 6 6 a 12a a a a 1 a a a 9 2 a 9 a 9 9 a 0 3 a 0 a 0 在c語言中11種賦值運算子的具體含義,用法?1.六個變數 表示式的賦值 是賦值運算子,是除後賦值,是乘...

c語言運算子 和各有什麼功能,C語言運算子 和 各有什麼功能?

表示按位或,規則是一個為1或二個都為1,結果為1,表示按位異或,規則是相同為0,相異為1。首先把兩個運算元化成二進位制,然後按位進位制操作 5 35的二進位制00000101 3的二進位制00000011 00000111 化為十進位制是7 5 35的二進位制00000101 3的二進位制00000...

左移運算子的問題c左移運算子的問題C

比較淺顯的來說,左移n位就是乘以2的n次方,右移n位就是除以2的n次方。具體細節如下 c語言裡的左移和右移運算 先說左移,左移就是把一個數的所有位都向左移動若干位,在c中用 運算子.例如 int i 1 i i 2 把i裡的值左移2位 也就是說,1的2進位制是000.0001 這裡1前面0的個數和i...