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...