C語言符合賦值運算子,C語言賦值運算子的結合方向是自右向左嗎?

時間 2021-05-05 23:25:04

1樓:gta小雞

c - a += b *= c /= 2是錯誤的表示式,賦值運算子的左值必須是可解析的變數表示式,而c-a不是乙個合法的左值。

c語言賦值運算子的結合方向是自右向左嗎?

2樓:匿名使用者

賦值運算bai符是自右向左結合的。

du以如下**為例zhi:

int a = 1,b=2,c=3;

a=b=c;

printf("%d,%d,%d\n", a,b,c);

如果賦dao值運算為自內

左向右,那麼執行順

容序為a = b = 2;

b = c = 3;

結果a = 2, b=3, c = 3。

將輸出2,3,3

如果賦值運算為自右向左,那麼執行順序為

b = c = 3;

a = b = 3;

結果a = 3, b=3, c = 3。

將輸出3,3,3

通過實際執行,結果為3,3,3。說明結合方向是自右向左的。

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

3樓:匿名使用者

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

4樓:匿名使用者

%=的用法是,把%移到右邊。比如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語言中11種賦值運算子的具體含義,用法?

5樓:木子青耶

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。

6樓:逍遙子家

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語言賦值運算子習題

7樓:匿名使用者

c=(a-=a-5),(a=b,b+3); 是乙個兩部分的逗號表示式,第一部分中(a-=a-5)實際是a = a - (a - 5);是a = 0 - (0 - 5)則a = 5,第一部分變為c=(a=5),所以a和c都等於5,第二部分也是逗號表示式,a=b將b賦值給a,b是0.所以a也變為0,現在a和都為0,c為5,最後乙個b+3沒有作用。所以最後的值a、b、c分別是0、0、5

c語言:「不能在賦值語句中通過賦值運算子『=』對字元型陣列進行整體賦值。」這句話為什麼是對的? 5

8樓:匿名使用者

這樣寫是可以的(不是賦值,是初始化)。意思就是定義乙個字元陣列,並初始化,結果是:

s[0]='a'

s[1]='s'

s[2]='d'

s[3]='f'

s[4]='\0'

下面的寫法是錯誤的,這說明:「不能在賦值語句中通過賦值運算子『=』對字元型陣列進行整體賦值。」這句話是對的。

char s[5];

s[5]="asdf";

9樓:匿名使用者

char s[5]="asdf";

這句不是賦值而是初始化;

講的賦值語句是在程式執行中的賦值,就像

int a;

int b;

b=a; 這是賦值;

對於字元而言,要賦值就要採用strcpy(s1,s2)這個函式。

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

10樓:

x+=x-=x*x;

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

首先是 x-=x*x

然後是 x-=36

繼續 x=x-36

x=-30

x+=-30

x=-30-30

=-60

11樓:匿名使用者

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

12樓:

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

13樓:及珹彤白亦

要點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語言賦值運算子與賦值表示式

賦值運算,從右到左。先是將4賦值給z,所以z 4 然後再講z的4賦值給y,所以y 4,然後剩下 x y 既是等同與x x 4 x自乘4得到8 最後 x 8 y 4z 4 中間用逗號連線的表示式叫逗號表示式,逗號表示式的值是最後乙個逗號後面的值。但是逗號表示式的優先順序比較低,第乙個表示式先計算 8,...

c語言 「不能在賦值語句中通過賦值運算子對字元型陣列進行整體賦值。」這句話為什麼是對的

這樣寫是可以的 不是賦值,是初始化 意思就是定義乙個字元陣列,並初始化,結果是 s 0 a s 1 s s 2 d s 3 f s 4 0 下面的寫法是錯誤的,這說明 不能在賦值語句中通過賦值運算子 對字元型陣列進行整體賦值。這句話是對的。char s 5 s 5 asdf char s 5 asd...

C語言運算,C語言 運算子 是怎麼運算的

詳細的給你解釋一下,手打的哦 運算子的大概的優先順序 由高到低排列,分號隔開 非 算數運算子 關係運算子 與 或 賦值運算子 這些事大概常用的,當處在同乙個運算級別的時候,就從左到右計算,當然所有的運算子中,級別的最高的就是括號,有括號就要先計算括號。下面 我們來看這道題 a 前減量操作 a減1之後...