在c語言中11種賦值運算子的具體含義用法

2021-03-07 00:59:44 字數 5398 閱讀 1744

1樓:木子青耶

1.六個變數=表示式的賦值:

=是賦值運算子,/=是除後賦值,*=是乘後賦值,

%=是取模後賦值,+=是加後賦值,-= 是減後賦值,

2.<<=是左移後賦值,變數<<=表示式 左移就是將左邊的數的二進位制各位全部左移若干位,右邊的數指定移動位數,高位丟棄,低位補0, 移幾位就相當於乘以2的幾次方。

3.>>=是右移後,變數》=表示式,右移運算子是用來將一個數的各二進位制位右移若干位,移動的位數由右運算元指定(右運算元必須是非負值),移到右端的低位被捨棄,對於無符號數,高位補0。

對於有符號數,某些機器將對左邊空出的部分用符號位填補(即「算術移位」),而另一些機器則對左邊空出的部分用0填補(即「邏輯移位」);

對無符號數,右移時左邊高位移入0;對於有符號的值,如果原來符號位為0(該數為正),則左邊也是移入0。

如果符號位原來為1(即負數),則左邊移入0還是1,要取決於所用的計算機系統,系統移入0或系統移入1。

移入0的稱為「邏輯移位」,即簡單移位;移入1的稱為「算術移位」。

4.&= 按位與後,變數&=表示式,按位與是指:參加運算的兩個資料,按二進位制位進行「與」運算。

如果兩個相應的二進位制位都為1,則該位的結果值為1;否則為0。

5.^= 按位異或後賦值,變數^=表示式,參與運算的兩個量按照對應的位進行異或運算,且

0^0→0,  0^1→1,  1^0→1,  1^1→0

一個數與0異或仍保持不變,如a^0=a

一個數與自己異或結果為0,如a^a=0

11.|=是按位或後賦值,變數|=表示式,參與運算的兩個量按照對應位進行或運算,且0|0→0,  0|1→1,  1|0→1,  1|1→1。

2樓:逍遙子家

1、= 賦值運算子:變數=表示式,如:a=3,將a的值賦為3;

2、/= 除後賦值:變數/=表示式,如:a/=3,即a=a/3;

3、*= 乘後賦值:變數*=表示式,如:a*=3,即a=a*3;

4、%= 取模後賦值:變數%=表示式,如:a%=3,即a=a%3;

5、+= 加後賦值:變數+=表示式,如:a+=3,即a=a+3;

6、-= 減後賦值:變數-=表示式,如:a-=3,即a=a-3;

7、<<=     左移後賦值: 變數<<=表示式,左移就是將《左邊的數的二進位制各位全部左移若干位,《右邊的數指定移動位數,高位丟棄,低位補0, 移幾位就相當於乘以2的幾次方;

8、>>= 右移後賦值:變數》=表示式,右移運算子是用來將一個數的各二進位制位右移若干位,移動的位數由右運算元指定(右運算元必須是非負值),移到右端的低位被捨棄,對於無符號數,高位補0;

對於有符號數,某些機器將對左邊空出的部分用符號位填補(即「算術移位」),而另一些機器則對左邊空出的部分用0填補(即「邏輯移位」);

9、&= 按位與後賦值:變數&=表示式,按位與是指參加運算的兩個資料,按二進位制位進行「與」運算。如果兩個相應的二進位制位都為1,則該位的結果值為1,否則為0;

10、^= 按位異或後賦值:變數^=表示式,參與運算的兩個量按照對應的位進行異或運算,且0^0→0、0^1→1、 1^0→1、 1^1→0。此外,一個數與0異或仍保持不變,即a^0=a,一個數與自己異或結果為0,即a^a=0;

11、|= 按位或後賦值: 變數|=表示式,參與運算的兩個量按照對應位進行或運算,且

0|0→0、0|1→1、1|0→1、1|1→1。

簡單的最常用的運算子是「=」,它的作用是將一個表示式的值賦給一個左值,一個表示式或者是一個左值,或者是一個右值。所謂左值是指一個能用於賦值運算左邊的表示式,左值必須能夠被修改,不能是常量。一般用變數作左值,指標和引用也可以作左值。

在基本賦值運算子之外,還有適合於所有二元算術和字串運算子的"組和運算子",這樣可以在一個表示式中使用它的值並把表示式的結果賦給它,例如: <?php。

c語言中規定 賦值運算子的左邊必須是什麼?

3樓:**ile灬微光丶

賦值運算子的左邊必bai須是變數。

簡單du賦值運zhi算符記為「=」,由「= 」連線的式dao子稱為賦值表專達式。其一

屬般形式為:

變數=表示式

例如:x=a+bw=sin(a)+sin(b)y=i+++--j

賦值表示式的功能是計算表示式的值再賦予左邊的變數。賦值運算子具有右結合性,因此a=b=c=5可理解為a=(b=(c=5))。

在其它高階語言中,賦值構成了一個語句,稱為賦值語句。 而在c中,把「=」定義為運算子,從而組成賦值表示式。 凡是表示式可以出現的地方均可出現賦值表示式。

例如:式子x=(a=5)+(b=8)是合法的。它的意義是把5賦予a,8賦予b,再把a,b相加,和賦予x,故x應等於13。

擴充套件資料

賦值運算子的作用是把右側表示式的值存入左側變數中,c語言中賦值操作是作為一種表示式來處理的。

賦值運算子(=)可以和算術運算子(+,-,*,/,%)及雙目運算子(&,|,^,>>,<<)組合成一個複合賦值運算子。但需要注意的是複合賦值運算子的兩個組成符號之間不能有空白字元。

4樓:fanfeng雙魚

須變數,不能是常量bai

。例如:int i=1;

dui就是一個變數。zhi

賦值操作符(=)用於對變數賦dao值,左邊必須是變數,右邊是可以當成數字使用的內容,賦值操作符的優先順序很低,但是比,優先順序高。

多個賦值操作符從右向左計算。

複合賦值操作符(+=,-=,*=,/=),其優先順序和賦值操作符的優先順序一樣。

swap.c

#include

int main()

5樓:匿名使用者

必須是變數名(如a=2),也可以是 *指標變數名(這相當於給指定的記憶體地址賦值,如*p=2)

c99或者c++還允許引用名寫在賦值號左邊

6樓:千鋒教育

左邊必須是變數,而且是跟所要賦的值型別相同。

7樓:匿名使用者

左邊必須是一個變數,型別可以不同。

兩邊的型別不同也可以賦值,強制轉型比如:

char s[20];

int x=(int)s

8樓:自由的風的我

賦值運算子左邊必須是一個變數,不可以是一個常量,也不可以是一個表示式,如a+b=c是非法的。

9樓:s如詩如夢

必須是變數

因為要賦值給左邊,所以左邊必須是一個可以儲存東西的單元

這是規定的,必須是變數

10樓:誰也整不了你

只有可修改的變數或者 」運算結果是可修改的變數的表示式「才可以作為左值。

11樓:陳士晟

左邊不能是一個確定的數,比如「a=3「不能寫成「3=a「

12樓:剛慢打老虎

賦值運算子左側只能是變數,而不能是

常量或者表示式。右側可以是表示式包括賦回值表示式答。規定最左邊變數所得到的新值,就是整個賦值表示式的值,

如果賦值運算子的兩側型別不一致,在賦值前系統將自動先把右邊的表示式所求得的數值按賦值號左側變數的型別進行轉換,

就這麼多了,**不完全待修改還請指正。

13樓:匿名使用者

答:變數。

因為只有變數才有空間來存放運算的結果。表示式是不行的。

14樓:匿名使用者

賦值運算子的左側必須是變數

15樓:匿名使用者

以上答抄案都不對,請

bai參考權威:

actually, the left side must refer to a storage location. the ******st way is to use the name of a variable, but, as you will see later, a 「dupointer」 can be used to point

to a location.

以上內容來自zhi

《c primer plus (第六版)》dao

16樓:程式設計大亨

變數.能夠改變的值,不是在常量區的值.

17樓:匿名使用者

變數int a=2;

18樓:匿名使用者

運算子左邊必須是變數

19樓:hjc_臥龍待天

可以被賦值的變數名稱

c語言中算術運算子和賦值運算子哪個優先順序高?

20樓:匿名使用者

算術運算子高! 表示式優先順序()(小括號) (陣列下標) .(結構成員) ->(指標型結構成員)↑最高!

(邏輯非) .(位取反) -(負號) ++(加1) --(減1) &(變數地址) │*(指標所指內容) type(函式說明) sizeof(長度計算) │*(乘) /(除) %(取模) │+(加) -(減) │<<(位左移) >>(位右移) │<(小於) <=(小於等於) >(大於) >=(大於等於) │==(等於) !=(不等於) │&(位與) │^(位異或) │|(位或) │&&(邏輯與) │||(邏輯或) │?:

(?表示式) │= += -=(聯合操作) │,(逗號運算子) │最低 1. .

的優先順序高於*。->操作符用於消除這個問題。 *p.

f變成了*(p.f)而不是(*p).f2.

高於*,於是int *ap中的ap變成了元素為int指標的陣列。3. 函式()高於*,因此,int *fp()不再是函式指標了,而是一個函式,返回int *。

4. 逗號運算子在所有運算子中優先順序最低,所以,i = 1, 2就成了(i = 1), 2而不是i = (1, 2)。 逗號運算子的值是最右邊運算元的值,逗號運算子結合性從左至右,因此又稱為順序求值運算子。

5. 在表示式中如果有布林操作、算術運算、位操作等混合計算,始終應該在適當的地方加上括號。 x = f() + g() * h(); 乘法先於加法執行,但是g()和h()的呼叫可能以任何順序出現。

同樣,f()可能在乘法之前呼叫,也可能在乘法之後呼叫。 優先順序和結合性規則告訴你哪些符號組成一個意群,大部分這樣的意群內部如何進行計算的次序是未定義的。有些操作符,如&&和||等,其運算元的計算順序是確定的,它們使用短路原則。

c語言中記住兩個優先順序就夠了:乘法和除法先於加法和減法,在涉及其他操作符時一律加上括號。結合性用於在幾個操作符具有相同的優先順序時確定先執行哪一個。

每個操作符擁有某一級別的優先順序,同時也擁有左結合性或者右結合性。 所有的賦值符(包括複合賦值符)都具有右結合性(從右到左執行),因此可以使用連等的賦值形式。唯一的三目運算子?:

也是具有右結合性的。 所有優先順序相同的操作符,它們的結合性也相同,這是必須如此的。在函式呼叫中,各個引數的計算順序是不確定的

c語言中逗號運算子怎麼用,C語言中逗號運算子怎麼用

一 用法 1 當順序點用,結合順序是從左至右,用來順序求值,完畢之後整個表示式的值是最後一個表示式的值。main 先算括號內的值 s 2 4,d 4 7 括號內應為 4,7 括號內取值只取最後一個,如果沒有括號則取第一個 a 12 7 19。x y 3,z y 2 5 是首先把y賦值為3,把y遞增為...

c語言基礎複合賦值運算子式子aaa

先從假設一個數bai開始du。假設a 10 a a a a 6 此時zhia 10a a a 4 此時a 10 a a 2 此時a 2 a 4 此時a 4 最後a 8 在賦dao值運算子回 當中,有一類c c 獨有答的複合賦值運算子。它們實際上是一種縮寫形式,使得對變數的改變更為簡潔。c語言是一種計...

C語言中的初等運算子有哪些c語言中有哪些運算子,各有什麼功能?

1級 左結合 圓括號 下標運算子 指向結構體成員運算子 結構體成員運算子。2級 右結合 邏輯非運算子 按位取反運算子 字首增量運算子 字首減量運算子 正號運算子 負號運算子 型別 型別轉換運算子 指標運算子 地址運算子 sizeof長度運算子。3級 左結合 乘法運算子 除法運算子 取餘運算子。4級 ...