C語言問題,第一題中答案為何不是7,後置運算子不是應該先用ab的值嗎?而第二題答案等於33,則先用

時間 2022-07-30 20:40:06

1樓:匿名使用者

這個是運算子優先順序的問題,逗號的優先順序最低。建議你熟悉一下c語言運算子的優先順序列表。在括號裡語句的執行順序是自左向右的,每一條語句都會被執行,結果自然取最後執行的一條指令的值。

那麼你的問題也可以解釋了,i++是先取i的值再使i自增,但是這裡的i++並不是被返回的語句(因為不是最後執行的語句),也就是說,當執行到最後的語句時,i++已經執行完畢了。 這樣可以理解不

2樓:無鐮死神

在c語言中,多個表示式可以用逗號分開,其中用逗號分開的表示式的值分別結算,但整個表示式的值是最後乙個表示式的值。從左往右一次執行,最終1題的值是a+b,等於9.

2題第乙個%d輸出y++的值,先輸出y的值,後++,輸出3。第二個%d輸出z+2的值,輸出3.

3樓:

第一題就是9.a++和b++都是有效的。逗號之間的語句為順序執行關係,整個表示式的值是最後乙個逗號後面式子的值。

第二題完全類似。

使用這種容易使人疑惑的語法並不是一種好的做法,團隊協作時極易造成疑惑降低效率。學習時要抓住重點。

C語言問題解答,C語言問題答案

c逗號表示式嗎 裡面的最後乙個表示式為解。知道不 就是 32啦。c 主要考的是逗號表示式的知識。你可以網上搜著看看。其主要特點在於從左往右計算,它的值為最後乙個表示式的值。c語言問題答案 9 a 1,b 3,c 2 必須按scanf格式輸入 10 a 1 1 的值是0 初值賦值只給了每行第乙個元素,...

C語言問題,乙個C語言問題

錯誤是 d 了 因為陣列名s,代表字串陣列的首位址,s指向的位址就是s 0 的位址。gets s 正確則gets s 0 也是正確的,所以 a,c 正確。而scanf s s 1 實際上只是不從s 0 開始,而是從s 1 開始賦值而已,既然只輸給它5個字元,所以從s 1 開始賦值也不會過界,則b是正...

C語言問題,乙個C語言問題

include void main printf 它們的和為 d sum include int main if i 3 0 return 0 include main printf n printf sum d sum system pause include int main printf su...