1樓:梟隱
首先括號裡是逗號表示式,根據c中的規律,逗號表示式應該以最後一個表示式的值為最終輸出值;其次我覺得樓主可能是覺得結果應該是65,其實中間的乘法運算只是呼叫a的值進行計算,而不是對其進行賦值,因此a的值仍以第一次賦值為準,為15…因此最後結果為20…希望我的回答對樓主有幫助…
2樓:匿名使用者
(a=3*5,a*4,a+5)
逗號運算子
首先計算a=3*5=15,然後是15*4=60(a的值並不發生變化),最後是15+5=20
相當於(15,60,20)
取最後一個元素的值就為20
3樓:講稿的
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
4樓:匿名使用者
a=15+5 = 20
c語言中, (a=3*5,a*4),a+5 結果為什麼是20,而不是65
5樓:
因為逗號表示式的優先順序比賦值表示式還低,因此先計算a=3*5,a的值為15,然後計算a*4的值作為括號裡的整個逗號表示式的值(這個過程中a的值不變),最後計算括號中的a+5的值,得20
6樓:匿名使用者
因為a*4只是一個表示式,a的值並沒有發生變化
7樓:罹渢燼
a的賦值為15,後面a*4執行,但不會給a
c語言題,求a=3*5,a*4,a+5的值,要有過程,謝謝
8樓:聽不清啊
a=3*5,a*4,a+5
先計算抄3*5並賦值給a,再計算a*4,最襲後計算a+5的值,bai20就是整個表du
達式的值。zhi
它等價於
(a=3*5),a*4,a+5
因為賦值運算子的dao優先順序高於逗號表示式的優先順序。
若是int c;
c=(a=3*5,a*4,a+5);
則c的值為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 ...
C語言中fabsaxle5是什麼意思
fabs a i x 1e 5,表示a i x的絕對值小於10 5。通常用於條件判斷語句中,進行精度控制。fabs是c語言中求絕對值的函式。函式原型 double fabs double x 功 能 計算x的絕對值 返 回 值 計算結果 1e 5是c語言中一種計數形式,1表示尾數,e表示階碼標誌,5...
c語言1 234e 5表示什麼意思
1.234乘上10的5次方,也就是1.234乘以100000,表示123400 科學計數法 表示1.234x100000 1.234乘於10的5次方 表示123400.0。在c語言中,是表示什麼意思 一般來說是數學上的除以的意思,相當於 不過它還有和其他兩種用法,一個是兩個連用 是單行註釋的意思。另...