1樓:匿名使用者
(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=3*5,a*4)
(a=3*5,a*4)
這個逗號表示式從左向右運算先計算a=3*5,這是個賦值語句,處理a=3*5=15
再計算a*4,此時a=15,所以a*4=60,但是注意這個表示式並沒有對a賦值,僅僅是一個乘法運算
根據逗號表示式的值取逗號中最右表示式的值的原則,(a=3*5,a*4)的值為60
再看a+5,
之前運算(a=3*5,a*4)時,a已經被賦值為15,所以這裡a+5=15+5=20
所以a+5這個表示式的值為20
再根據逗號表示式的值取逗號中最右表示式的值的原則,
表示式(a=3*5,a*4),a+5 的值即為a+5的值,也就等於20了
2樓:匿名使用者
逗號表示式的值是最右邊表示式的值
a=3*5 賦值給a=15
a*4 這個表示式的值被丟棄
a+5 是逗號表示式的返回值 15+5 =20逗號表示式的值是20
3樓:寧寧
逗號表示式,按從左到右順序進行,先計算a=3*5,再計算a*4.最後是計算a+5.因為a*4的值沒有賦值給a,所以逗號語句結束後,a的值為15,所以最後a+5=20 .
4樓:匿名使用者
首先逗號是左結合的所以那個括號沒意義
a = 3 * 5, a * 4, a + 5
最左邊導致a被賦值為15;中間的表示式結果是60,但是並沒儲存;右邊表示式結果是20作為整個表示式的最終結果
5樓:匿名使用者
20,逗號表示式從左到右執行,結果取最右
6樓:小老鼠
a=3*5;
所以a等於15
括號裡還是逗號表示式 整個表示式的值取 a*4 得6060 和 a+5 又是一個逗號表示式
但a的值沒變還是15 所以整個表示式的值取 a+5=20結果得20
7樓:
#include
void main()
c語言運算結果是60
8樓:特維佐
假如是y=(a=3*5,a*4,a+5)
則y=a+5;
在c語言的運算中,逗號表示式 a=3*5,a*4,a+5的值是多少???
9樓:
a=3*5,a*4,a+5的值是20,a的值是15——a=3*5=15,15*4=60(但60沒有賦給任何變數),15+5=20(也沒賦給任何變數,但它是整個表示式的值)。
10樓:匿名使用者
a還是為15 因為你後倆個式子並沒有給任何值 只是個算式
11樓:落戶武動
問題描述不完整,無法回答,可能和識別符號a的作用域有關
c語言(a=3*5,a*4,a+5)什麼意思?輸出20
12樓:梟隱
首先括號裡是逗號表示式,根據c中的規律,逗號表示式應該以最後一個表示式的值為最終輸出值;其次我覺得樓主可能是覺得結果應該是65,其實中間的乘法運算只是呼叫a的值進行計算,而不是對其進行賦值,因此a的值仍以第一次賦值為準,為15…因此最後結果為20…希望我的回答對樓主有幫助…
13樓:匿名使用者
(a=3*5,a*4,a+5)
逗號運算子
首先計算a=3*5=15,然後是15*4=60(a的值並不發生變化),最後是15+5=20
相當於(15,60,20)
取最後一個元素的值就為20
14樓:講稿的
c 語言中,逗號(,)也可以是運算子,稱為逗號運算子(comma 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
15樓:匿名使用者
a=15+5 = 20
C語言當a5,b4,c2時表示式ab上C的值是
確定沒打錯麼?c跟 a b 完全沒關係 那麼最後c的值還是2呀 a b c 等價於 a b c 即5 6 所以結果為 0 a btrue 邏輯值 1 那個大蝦可講解一下 運算過程嗎 我咋看看雜不懂 當a 5,b 4,c 2時,表示式a b!c的值是 是1,不信你試試。a b!c即 a b c a b...
C 高手請進逗號表示式 x45,x
應該是d 45吧。因為括號把兩個運算放到一起,所以不能用 逗號表示式的返回值是最後一個計算結果 這個概念把。可以實際執行一下試試 你這個問題如果前面有個y 那結果又不同是100了 逗號表達來是的方法是從左 自到右,也就是bai說先看 x 4 5,x 5 裡面x 4 5 20,再是 dux 5即為20...
C語言中int a 9,b 5那麼表示式b(a
b a 4 b a 1,把4賦值給a a 42 把a賦值給b b a3.相除 結果就時1了 其實不管a是多少 0除外 結果都是1 inta 9,b 5 這句是給a,b賦初值 b a 4 b a 在這句中a 4是給a重新賦值了,此時a 4,所以b a 4b a 4 b a a 4 b 4 4 4 1 ...