關於c語言的逗號表示式

2022-08-26 17:22:50 字數 1081 閱讀 2786

1樓:唐振英儲嫣

書上說的可能是逗號表示式的值,逗號表示式的值確實一個為14,一個為16,可是由於=號比逗號優先順序高,故a都為8

能不能加5樓的自己去試試不就得了,錯了還有理了!

2樓:儀楚大煙

應該是程式有問題~第一個如果是這樣答案就是14:

inta;

a=3+5,a=6+8;

printf("%d\n",a);

第二給這樣:

inta;

a=3+5,a=a+8;

printf("%d\n",a);

我大二學的,不知道對不對,如果錯了,希望別在意~

3樓:谷廷謙房酉

(x=a+b),(b+c) 是一個逗號表示式,整個表示式的值為最後一個式子的值,但是逗號表示式要從左向右計算,這個等價於

(x=2+4),(b+c)

===>

6,(4+6)

====>

6,10

即表示式值為10

把10賦值給y

,則y的值就是10

4樓:謇有福及子

上搞錯了,逗號的優先順序最低,書上錯誤地把式子劃分成a=(3+5,6+8,6+8);

和a=(3+5,a+8);

和(a=3+5),a+8;

,所以這兩個程式中的表示式,運算順序應該是(a=3+5)

5樓:魯秀梅崇申

把那個作者拿去烹了得了:a=(3+5,6+8)。。,理由如前。

如果寫為。。,若直接寫為。。:a=3+5逗號運算子的優先順序比賦值運算子(=)低,因此程式中總是先對a進行賦值以後再去求逗號後面的表示式。

對第一個程式:a=(3+5,a+8)。。誤人子弟;

則a的值是不確定的!!,6+8,a+8。。:

a=3+5,一方面,則a的結果肯定為8,因為這裡a應該等於a+8的值,而計算a+8時,a尚未初始化,它的值只是棧上的一個垃圾資料。這樣的**哪本教科書上的;

改為;對第二個程式:

inta;

a=3+5,a+8;

這是很怪異的

c語言關於表示式求值,C語言關於表示式求值

c語言有豐富的表示式,這是它的特點之一,表示式主要有4類,算術表示式,賦值表示式,逗號表示式,關係表示式 1.算術表示式就是包含算術運算子 如 等 的表示式 不是語句,後面沒有分號 如 a b a b,a b c d,3 5等,算術表示式的值就是最後算出的結果,如3 5這個表示式的值就是8 2.賦值...

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語言中表示式1表示式2表示式3為什麼不先算表示式2急急急

在c語言中,或 的優先順序低於與 的優先順序,也就是說,無論表 達式1,表示式2,表示式3的值是真或者是假,都是做以下關係運算 表示式1的值 表示式2的值 表示式3的值 和他們的具體值無關。你的說法是不對的,因為此邏輯表示式是先求出 右側的值,然後再與 左側的值作關係或運算,如果想先算前面可以在前兩...