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的值 和他們的具體值無關。你的說法是不對的,因為此邏輯表示式是先求出 右側的值,然後再與 左側的值作關係或運算,如果想先算前面可以在前兩...