1樓:匿名使用者
下面的引自c faq:4.7 我怎樣才能理解複雜表示式?
``序列點" 是什麼?序列點是內一個時間點(在整個表達容式全部計算完畢之後或在 ||、 &&、 ? :
或逗號 運算子處, 或在函式呼叫之前), 此刻塵埃落定, 所有的***都已確保結束。 ansi/iso c 標準這樣描述:在上一個和下一個序列點之間, 一個物件所儲存的值至多隻能被表示式的 計算修改一次。
而且前一個值只能用於決定將要儲存的值。第二句話比較費解。它說在一個表示式中如果某個物件需要寫入, 則在同一表示式中對該物件的訪問應該只侷限於直接用於計算將要 寫入的值。
這條規則有效地限制了只有能確保在修改之前才訪問 變數的表示式為合法。例如 i = i+1 合法, 而 a[i] = i++ 則非法 (參見問題 3.1)。
如上所述,逗號表示式是一個序列點,所以x+y時y++的***已生效,這時候y=6,x+y=8,表示式最後的值是8.
2樓:匿名使用者
y++時 y=5;x+y時y=6,
當++放在變數的後面時,總是在執行下一條語句時才加1
3樓:匿名使用者
先使用y,y再變成y+1,結果為7
c語言一道題。假設所有變數均為整型,則表示式(x=2,y=5,y=++,x+y)的值為?答案是8,
4樓:和藹的雨後餘輝
這是逗號表示式,運算順序為最後一個式子x+y的結果,y=++該式等價於y=y++,就是y自加1,因而y的值變為6,而x值沒有改變,因而x+y的值為8
5樓:匿名使用者
這是逗號表示式,從左往右計算,最後一個表示式的值就是整個表示式的值.
第三個表示式,y++以後,y=6. 所以最後一個表示式x+y=8.
6樓:匿名使用者
寫錯了,親。知識,逗號運算子,y++與++y的區別,
7樓:匿名使用者
你確定是 y=++ 而不是y++?
假設所有變數均為整型,則表示式(a=2, b=5, b++, a+b)的值是
8樓:假面
c裡面用逗來號表示每個源來運算,上式是運算完bai了再引用b的值,當du然是2+6了。zhi
在c語言中,多個表示式dao
可以用逗號分開,其中用逗號分開的表示式的值分別結算,但整個表示式的值是最後一個表示式的值。
整型值可以用十進位制,十六進位制或八進位制符號指定,前面可以加上可選的符號(- 或者 +)。如果用八進位制符號,數字前必須加上 0(零),用十六進位制符號數字前必須加上 0x。
9樓:於苒琦芳澤
c裡面用逗號表示挨個來運算,上式是運算完了再引用b的值,當然是2+6了。
如果直接引用b++,像這樣a=2,b=5,(b++
+a)那麼結果就是7了。
10樓:騎疇褒玉韻
第一個問題
答案是7
解析:++在變數後,所以先運算,再加減,「,」表示式以最後的表示式為值
第二個問題
選擇c解析:b-a
-不是下劃線
goto
和int為關鍵字。
11樓:匿名使用者
逗號運算子:在c語言中,多個表示式可以用逗號分開,其中用逗號分開的表示式的值分別計算,但整個表示式的值是最後一個表示式的值。
對於本題,以a+b=2+5=7作為整個表示式的值。選a
12樓:匿名使用者
逗號表示式從左到右開始做,並輸出最後一個表示式,所以答案是2+(5+1)=8
13樓:陳綠豆
8 因為逗號表示式只有最後一個有用的
14樓:看不慣
a=2b=5b++ 這裡的b=6;
a+b = 2 +6 = 8
c語言:已有定義int x=3,y=4,z=5;則表示式 !(x+y)+z-1&&y+z/2的值是?
15樓:
答案是1。
涉及到的運算子: ! () + - && /運算子優先順序為:() ! / + - &&運算過程:
x=3,y=4,z=5
!(x+y)+z-1&&y+z/2
!(3+4)+5-1&&4+5/2
所以表示式計算步驟為
!(3+4)+5-1&&4+5/2 -> !7+5-1&&4+5/2!7為 0
-> 0+5-1&&4+5/2
5/2 整數除整數得整數 2
-> 0+5-1&&4+2
-> 4&&6
邏輯運算 &&
擴充套件資料c語言運算子的優先順序:
如果同一優先順序的運算子,結合次序由結合方向所決定。
16樓:匿名使用者
只是等於1的,我是經過turbo c2.0編譯過的,答案應該沒什麼問題的,程式是:
main()
答案為什麼會等於1呢?那是因為運算級別的問題,根據運算級別,實現算括號裡面的先,所以程式就變成!7+z-1&&y+z/2;
然後就算!運算,由於7是大於1的,也就是真,所以!真就是假,也就是0,所以函式就變成0+z-1&&y+z/2;
然後再算除號的,由於你這裡兩個都是整形的,所以小數點後面的數忽略,所以就變成0+z-1&&y+2;
接著計算加減運算,也就是變成4&&6;
因為4和6都是大於1的數,所以就是真,由於&&兩邊都是真的話,輸出的就是真,所以結果就是1。
要是還有什麼不明白的話,就mm我吧!嘻嘻~~~~~~
17樓:匿名使用者
1優先順序: 算數》條件》關係》賦值
關係中的優先順序: 非》與》或
18樓:匿名使用者
1,把運算子優先順序搞清楚就好了
19樓:匿名使用者
x等於y加4。四家外加1+3+5+4+1等於三五+4+5+1。
20樓:匿名使用者
!(3+4)+5-1&&4+5/2
=!7+4&&4+2
=!11&&6
所以說那個式子的值是:不是11並且是6
假設所有變數均為整型,則表示式 a 2,b 5,b
c裡面用逗來號表示每個源來運算,上式是運算完bai了再引用b的值,當du然是2 6了。zhi 在c語言中,多個表示式dao 可以用逗號分開,其中用逗號分開的表示式的值分別結算,但整個表示式的值是最後一個表示式的值。整型值可以用十進位制,十六進位制或八進位制符號指定,前面可以加上可選的符號 或者 如果...
若A是int型變數,則計算表示式a2233後a的值為
先算 22 3 7 c語言是整除 不能有小數 再算 7 3 1 7對3取餘數 a 1 1,計算方式除和模優先順序相同則從左向右依次計算得1.a 的值為1 首先計算 22 3 結果為 7 再計算 7 3 結果為1 若a是int型變數,則執行表示式a 25 3 3後a的值為 5 若a是int型變數,則執...
若a是int型變數,則計算表示式25 7 7後a的值為多少
3.少年你在考試嗎?囧!c 的優先順序 優先順序 操作符 結合性 1 左 2 左 3 sizeof new delete castname cast單目操作符 右 4 左 5 左 6 左 7 左 8 左 9 左 10 左 11 左 12 左 13 左 14 左 15 右 16 右 17 throw ...