回覆列表
-
1 # dazhe11529
-
2 # lanfengz3
c語言提供一種特殊的運算子,逗號運算子,優先級別最低,它將兩個及其以上的式子聯接起來,從左往右逐個計算表示式,整個表示式的值為最後一個表示式的值。如:(3+5,6+8)稱為逗號表示式,其求解過程先表示式1,後表示式2,整個表示式值是表示式2的值,如:(3+5,6+8)的值是14;a=(a=3*5,a*4)的值是60,其中(a=3*5,a*4)的值是60, a的值在逗號表示式裡一直是15,最後被逗號表示式賦值為60,a的值最終為60。
所以你的那個a是15,然後a+15等於30。
int main(){ int k = 0; int i = ((k=3*2, k+4), k+2); printf("value = %d\n", i);}結果:value = 8逗號表示式從左往右計算,但返回右邊的資料值作為表示式值;
1. k = 3*2 // k = 6;
2. (6, k+4) // 表示式返回10, k仍為63. (10, k+2) // k為6,表示式返回8