12.【表 12】之 C++程式片段執行後,a 值為何?

(A) -1
(B) 0
(C) 1
(D) 2

答案:登入後查看
統計: A(0), B(11), C(12), D(0), E(0) #3276879

詳解 (共 2 筆)

#7492798
1. 初始狀態
  • int x = 0, y = 0, z = 0;
    • 在記憶體中配置三個整數變數 x、y、z,其初始值皆為 0。
2. 表達式解析與求值:((x+y+z) == (-1*-y))
此敘述核心在於比較運算子 == 左右兩側子表達式(Sub-expression)的計算結果:
  • 左側子表達式 (x+y+z)
    • 代入變數值:0 + 0 + 0
    • 求值結果為整數 0
  • 右側子表達式 (-1*-y)
    • 首先處理一元負號運算子(Unary Minus)-y:因 y = 0,故 -0 仍為 0。
    • 接著執行乘法運算(Multiplication):-1 * 0
    • 求值結果為整數 0
3. 關係運算子求值與賦值
  • 等值比較 ==
    • 將左側結果(0)與右側結果(0)進行等值比較,即 0 == 0。
    • 根據 C++ 標準規範,此關係表達式的邏輯條件成立(True),其求值結果為布林型態(bool)的 true。
  • 隱式型態轉換與賦值(Implicit Conversion & Assignment)
    • 在將布林值 true 賦值給整數型態(int)變數 a 時,會觸發標準轉換(Standard Conversion)。
    • 布林值 true 會被隱式轉換為整數 1(若為 false 則轉換為 0)。
    • 因此,變數 a 的記憶體狀態被寫入數值 1。
0
0
#6920953
為了提供詳細的解答說明,我們需要假設「表...
(共 778 字,隱藏中)
前往觀看
0
1