1樓:匿名使用者
20(1)a=3*5->a為15
(2)a*4=60->括號內的逗號表示式為60
(3)逗號表示式60,20的值,應該是多少呢?
已知int a=5;執行語句a=3*5,a*4,a+5;後變數a的值是多少?
2樓:匿名使用者
因為逗號運bai算符的
優先順序最du低,所以a=15,後面的a*4,a+5不改變zhi任何變數的值
a=(3*5, a*4, a+5)這樣dao的式子就會等價於版a=a+5=10,逗號運算子的規則就是權從左往右依次執行,並返回最後一個表示式的值
c語言(a=3*5,a*4,a+5)什麼意思?輸出20
3樓:梟隱
首先括號裡是逗號表示式,根據c中的規律,逗號表示式應該以最後一個表示式的值為最終輸出值;其次我覺得樓主可能是覺得結果應該是65,其實中間的乘法運算只是呼叫a的值進行計算,而不是對其進行賦值,因此a的值仍以第一次賦值為準,為15...因此最後結果為20...希望我的回答對樓主有幫助...
4樓:匿名使用者
(a=3*5,a*4,a+5)
逗號運算子
首先計算a=3*5=15,然後是15*4=60(a的值並不發生變化),最後是15+5=20
相當於(15,60,20)
取最後一個元素的值就為20
5樓:講稿的
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
6樓:匿名使用者
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來說,按照從左向右運算先計算 a ...
表示式43750的值為,在C語言中,表示式532840的值為。
步驟 1 1 7 4 2 1 0 3 0 所以最後結果是 0 在c語言中,表示式5 3 2 8 4 0的值為 1 正常思路 由於邏輯運算子優先順序別低於比較運算子同時這兩種都低於算術運算子,因此先考慮後半部分,4 0 真值為1,而8 1的真值為0.再考慮或左邊的表示式,5 3 2顯然真值為1最終結果...
當a5,b4,c2時,表示式ab!c的值是
是1,不信你試試。a b!c即 a b c a b 為真所以其值是1,c為2,1!2所以上述表示式為真,值為1 include int main 不信就把以上 執行一遍,看看是1還是0 a b c 5 4 2 5 4 為true 即為1 1 2 真不為真 即為假 假值為0 當a 5,b 4,c 2時...