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語言 逗號表示式,c語言 逗號表示式
c b a a 1 b a b 根據運算子優先順序,等效於 c b a a 1 b a b 整體是逗號表示式,逗號表示式的值由最末項決定,即a b,前面的表示式沒有改變a和b的值,所以整個表示式的值是2 3,即5 intmain 結果 value 8 逗號表示式從左往右計算,但返回右邊的資料值作為表...
C語言程式設計求下面表示式的值,C語言 求表示式的值
這個太簡單了,你查一下優先順序,就知道了,古人云 授之以魚不如授之以漁。解題思路 首先你要明白運算 符優先順序的順序,其次你要明白型別之間的強制轉專換按照優先順序屬的順序首先計算 內的值,再強制轉換為int 也就是int 2.5 4.7 7 然後按運算子優先順序,先算乘除,因為是又目運算子所以由左級...
在c語言中表示式,在C語言中,表示式5 3 2 8 4 0的值為()。
1 正常思路 由於邏輯運算子優先順序別低於比較運算子同時這兩種都低於算術運算子,因此先考慮後半部分,4 0 真值為1,而8 1的真值為0.再考慮或左邊的表示式,5 3 2顯然真值為1最終結果為 1 0 當然結果為12 有 將表示式分成兩部分 左邊的是 5 3 2 顯然其真值為1 因此 1 任意 真值...