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語言的逗號表示式
書上說的可能是逗號表示式的值,逗號表示式的值確實一個為14,一個為16,可是由於 號比逗號優先順序高,故a都為8 能不能加的自己去試試不就得了,錯了還有理了!應該是程式有問題 第一個如果是這樣答案就是14 inta a 3 5,a 6 8 printf d n a 第二給這樣 inta a 3 5,...
c語言關於表示式求值,C語言關於表示式求值
c語言有豐富的表示式,這是它的特點之一,表示式主要有4類,算術表示式,賦值表示式,逗號表示式,關係表示式 1.算術表示式就是包含算術運算子 如 等 的表示式 不是語句,後面沒有分號 如 a b a b,a b c d,3 5等,算術表示式的值就是最後算出的結果,如3 5這個表示式的值就是8 2.賦值...
C語言a35a4a5什麼意思輸出
首先括號裡是逗號表示式,根據c中的規律,逗號表示式應該以最後一個表示式的值為最終輸出值 其次我覺得樓主可能是覺得結果應該是65,其實中間的乘法運算只是呼叫a的值進行計算,而不是對其進行賦值,因此a的值仍以第一次賦值為準,為15 因此最後結果為20 希望我的回答對樓主有幫助 a 3 5,a 4,a 5...