c語言中語句cab,b4怎麼理解?知道的解釋下,謝了

2021-03-03 22:14:53 字數 3295 閱讀 4851

1樓:匿名使用者

a=a+(b+1)

b=b+4c=b

2樓:匿名使用者

這是關於符號優先順序,還有,號的用法,實際工作中不會用到的。如果你參加什麼亂碼大賽可能會用到,我的建議還是不要糾結這些莫名其妙的表示式,有時間還是實實在在多用指標,指標的內容得花很多時間

3樓:匿名使用者

a+=1的意思是a=a+1,++b意思是使用b時b的值為b+1。然後帶入,c=(a=a+(b+1),b=b+4);

4樓:oath斑駁

c=(a=a+(b+1),b=b+4)

c語言c=(a+=++b,b+=4)是什麼意思?

5樓:匿名使用者

考的是c語言運算子優先順序問題,

c=(a+=++b,b+=4)

1、++運算子優先順序高於+=;

2、,運算子優先順序最低,先求,號前的表示式,再求,後的表示式,最後結果為,後的表示式結果。

假設a=5,b=8

首先,a+=++b,得到 b = b+1 = 9; a= a+b= 5 + 9 = 14;

其次,b+=4,得到b = b+4 = 13;

最後,c=13.

建議你上機程式設計執行。

6樓:

++b;

a=a+b;

b=b+4;

c=b;//c等於最後一次計算的結果

c語言中c=(++a,b++,a++,++b);表示的是什麼意思?

7樓:匿名使用者

c=(++a,b++,a++,++b);逗號運算子是從左往右做取最後一個表示式的值++a後a的值為11,b++後b的值為11,a++後a得值為12,++b後b的值為12++b的意思是先做自增然後取b得值。所以整體c輸出為12另b++表示先取b得值為表示式的值然後在做自增。a++和++a也是同理。

8樓:匿名使用者

最後c=12。(++a,b++,a++,++b);是個逗號表示式,從左到右計算。c的結果由表示式最右邊的式子決定。

++a之後a=11;b++之後b=11;a++之後a=12;++b之後表示式值為12,b的值為12。

9樓:萊玉巧辛嫻

b是一個整型變數,a也是一個整型變數,c是一個整型陣列,所以c[a],就是取c陣列裡,a變數所指下標位置的值,b+=c[a]

就是等價於

b=b+c[a]

求c語言大神給我講解下下圖中的c=(a-=a-5),(a=b,b+3); 的運算過程以及中間逗號的意思

10樓:匿名使用者

首先,請搞明白一種表示式叫逗號表示式,就是將一組語句連著寫出來,中間用逗號分隔;表示式的取值是最後一個語句的取值。

c=(a-=a-5),(a=b,b+3); 這個語句是一個逗號表示式,前面的語句是c=(a-=a-5);後面的語句是(a=b,b+3);後面的語句也是個逗號表示式,整個表示式的值沒有處理,所以不關心。

計算:a-=a-5;即a-=-5;即a+=5;結果a=5c=(a-=a-5)結果c=5,a=5

a=b結果a=0

b+3運算了等於3但沒有儲存結果,對a,b,c的值不產生影響(a=b,b+3)的值是3,即b+3的結果,但這個結果也沒有儲存,對a,b,c的值不產生影響

最終:a=0,b=0,c=5

11樓:黑丶雨

逗號運算子:

在c語言中,多個表示式可以用逗號分開,其中用逗號分開的表示式的值分別結算,但整個表示式的值是最後一個表示式的值。

逗號運算:

在c語言中,多個表示式可以用逗號分開,其中用逗號分開的表示式的值分別結算,但整個表示式的值是最後一個表示式的值。

例如:int a1,a2,b=2,c=7,d=5;

a1=(++b,c--,d+3);

a2=++b,c--,d+3;

對於給a1賦值的**,有三個表示式,用逗號分開,所以最終的值應該是最後一個表示式的值,也就是(d+3)的值,為8,所以a1的值為8。

對於給a2賦值的**,也是有三個表示式,這時的三個表示式為a2=++b、c--、d+3,(這是因為賦值運算子比逗號運算子優先順序高)所以最終表示式的值雖然也為8,但a2=4(第2行**運算完時,b=3,即第3行**執行時,b的值為4)。

注意事項:

逗號運算的結合性是從左至右,完畢之後整個表示式的值是最後一個表示式的值。

例子:int a[2],x=2,y=5;

a[0]=(x+3,y++,x++);那麼最終結果是:a[0]=2 x=3 y=6;

為何a[0]=2:因為(x++)是運算之後再自加

a[1]=(x++,x+3,x+7);那麼最終結果是:a[1]=11 ,x=4

第一反應,我以為a[1]=10,就是3+7;其實是錯的。

計算a[0]的時候,x++了一次,此時x=3;計算a[1]的時候,又x++一次,此時x=4,因此a[1]=4+7=11

不信你改成a[1]=(x++,x+7,x+3);除錯一下,逗號表達試結果是7,就是4+3,說明經過一個逗號,x已經自加變成4了。[1]

再來一個關於結合性的例子:

int i=24;

i=(i++,i++,i++,i++);//i=27

因為逗號運算子的結合性是自左向右,所以四個i++會依次執行,但是最後一個i++在賦值之後才進行運算,所以最終返回27

12樓:匿名使用者

中間的逗號起到分隔作用,逗號是一個雙目運算子(a,b)返回的是b的值,同

時逗號是從左往右算,所以先算a

(a-=a-5)   中,先算a-5還是  -= ?要看運算子優先順序,-比-=高,所以先算a-5 =-5

然後a-=-5,此時a仍未0,所以該表示式為5第二個同理

(a=b,b+3)返回的是b+3

值得一提的是,由於逗號比賦值優先順序低,所以c=(a,b),(c,d)實際上是

c=(a,b),返回的是b

13樓:無敵玉琴

a=0;b=0;c=5

c語言裡a=(c++,b++)是什麼意思?c語言新手謝了

14樓:匿名使用者

等價於c = c + 1;

a = b;

b = b + 1;

不過沒有哪個正常人會寫成a=(c++,b++)

15樓:葉豐風格

語法寫錯了吧,沒見過這樣賦值的

C語言賦值語句,C語言中賦值語句有什麼規則要求?

選ab中取模右邊不是整數 c中賦值號左側不是一個變數 d中第二個賦值號左側不是一個變數 c語言中通過 運算子來實現賦值,有時候也用它來進行初始化,在c語言中初始化和賦值是完全兩個不同的概念。比如下面的 int a 10 這是初始化a 0 10 這是賦值 初始化是一個順序點,編譯器保證每一個順序點都執...

C語言中的語句while scanfd dm,nEOF怎麼跳出這個while迴圈

linux系統下 需要輸入ctrl d 在windows下,也就是命令列視窗 需要輸入ctrl z在螢幕上出現 z後,再按回車即可。設計上是輸入兩次回車就退出 其實程式設計時,可以改為按某個鍵,退出迴圈的。ctrl z 再按一到兩次回車 vs要連續輸入三次 enter才行 關於c語言求精確解釋這個迴...

C語言中,swichcase語句中,case後面只能

準確的說case後面跟來的源是一個確定的值,由於常量表示式也好,邏輯表示式 在c語言中邏輯表示式的值只有兩種而且是整形數值1或者0 也好都是返回的一個確定的值。因此switch case語句中case後可以跟邏輯表示式。注 剛剛我試了一下,確實可以 switch 只能跟確定的值,而且只能是整形,字元...