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語言逗號表示式 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來說,按照從左向右運算先...
C語言中,若有int a 5則逗號表示式a 2 6,a 3,a 5的值是
風雷九州 沒錯,就是12。號優先順序高於,號表示式,要計算 賦值 直接就是a 2 6 12了,後面那些a 3,a 5什麼的都沒用 我認為是17,因為這是一個逗號表示式,裡面有2個逗號,3個式子!逗號表示式的值,以最後一個式子的值為值,也就是a 5。但是他是從前往後依次做算的,運算第一個式子後,a是1...
c語言的邏輯表示式
這個必須先弄清楚這三個邏輯運算子的優先順序,這三個中優先順序 最高,其次為 最低。因此對於 a b c 1 先計算 a b 由於 a b,結果為1,1得到0,在計算 c,由於c為非0數值 c語言中,非0數值視為真 所以 c結果為0,由於 優先順序高於 則接下來計算0 0,結果為0.最後計算0 1,則...