C語言中a35,a4,a5結果為什麼是20,而不是

2021-05-21 11:28:18 字數 1531 閱讀 5068

1樓:

因為逗號表示式的優先順序比賦值表示式還低,因此先計算a=3*5,a的值為15,然後計算a*4的值作為括號裡的整個逗號表示式的值(這個過程中a的值不變),最後計算括號中的a+5的值,得20

2樓:匿名使用者

因為a*4只是一個表示式,a的值並沒有發生變化

3樓:罹渢燼

a的賦值為15,後面a*4執行,但不會給a

c語言(a=3*5,a*4,a+5)什麼意思?輸出20

4樓:梟隱

首先括號裡是逗號表示式,根據c中的規律,逗號表示式應該以最後一個表示式的值為最終輸出值;其次我覺得樓主可能是覺得結果應該是65,其實中間的乘法運算只是呼叫a的值進行計算,而不是對其進行賦值,因此a的值仍以第一次賦值為準,為15...因此最後結果為20...希望我的回答對樓主有幫助...

5樓:匿名使用者

(a=3*5,a*4,a+5)

逗號運算子

首先計算a=3*5=15,然後是15*4=60(a的值並不發生變化),最後是15+5=20

相當於(15,60,20)

取最後一個元素的值就為20

6樓:講稿的

c 語言中,逗號(,)也可以是運算子,稱為逗號運算子(***ma operator)。逗號運算子可以把兩個以上(包含兩個)的表示式連線成一個表示式,稱為逗號表示式。其一般形式為:

子表示式1, 子表示式2, ..., 子表示式n

例如:a + b, c = b, c++

逗號運算子的優先順序是所有運算子中級別最低的,通常配合 for 迴圈使用。逗號表示式最右邊的子表示式的值即為逗號表示式的值。上例中,c++ 的值(c 自增之前的值)即為該表示式的值。

逗號運算子保證左邊的子表示式運算結束後才進行右邊的子表示式的運算。也就是說,逗號運算子是一個序列點,其左邊所有***都結束後,才對其右邊的子表示式進行運算。因此,上例中,c 得到 b 的值後,才進行自增運算。

下面我們來看一些小例子:

var = 235,567;

乍一看您可能以為這個語句有語法問題,其實它是完全正確的!首先運算逗號左邊的子表示式 var = 235,var 被賦值為 235;然後運算右邊的子表示式,其值為 567,故而整個逗號表示式的值是 567。可別以為 var 得到的值是 235567 或者 567 哦!

如果寫成:

var = (235,567);

則 var 得到的值是 567。

逗號也被用作分隔符(separator),例如:

int i_var1 = 1, i_var2 = 2, i_var3 = 3;

printf("%d %d %d\n", i_var1, i_var2, i_var3);

上例中的逗號是分隔符,而不是逗號運算子。

例題:fun(int x,int y)

main()

答案:8

7樓:匿名使用者

a=15+5 = 20

c語言中35怎麼解釋,C語言中35答案為什麼是

include main 執行結果 3 5 3 3 5 3 3 5 3 3 2 1 3 2 1 3 5 3 4 5 4 4 5 4 0 5 0 n m,先分別對n和m取絕對值進行取餘運算,結果的符號與專n一樣,與屬m無關。前面那個來3沒有用,就是一個普通字元自 後面的 5,5代表bai後面列印 du...

C語言逗號表示式 a 3 5,a 4,a 5 的值是多少

a 3 5,a 4 a 5 應該是 a 3 5,a 4 a 5 吧 逗號表示式注意兩個基本知識 1.逗號表示式的運算順序是從左向右運算 2.逗號表示式的值取逗號中最右表示式的值 現在看 a 3 5,a 4 a 5這個逗號表示式,首先對於 a 3 5,a 4 和a 5來說,按照從左向右運算先計算 a ...

c語言中,x 6,表示式(x x x 4)的值是多少?為什麼

x 2 1先計算x 4 相當於x x 4這個時候x 2了。2再計算x x 4 這個時候x 2,且x 4 這一塊也等於2了,所以x 2 x x 2 x 2 2 x 1 3後計內算x x x 4 前面的一部容分 x x 4 1了!也把x賦1了!所以x 1相當於x x 1 相當於x 1 1 2了!注意你算...