條件運算子(?:) 中的型別系統和值類別
在C 中,條件運算子(?:) 計算符結果為特定類型和值類別的值,它定義了它是否可以引用記憶體中的物件。
在第一個範例中提供:
x和y都是int變量,且條件x > y 為假。因此,y 被賦值為 100。由於兩個運算元的型別相同,因此條件式本身變成左值,這表示它可以被賦值給。
但是,在第二個範例中:
x 是 int,y 是 long,使得運算元的型別不同。要比較 x 和 y,需要進行轉換,這會導致條件表達式變為右值而不是左值。由於無法分配右值,因此這種情況下的分配無效。
總而言之,如果第二個和第三個操作數是相同類型的左值,則條件表達式是左值,允許對結果進行分配。如果它們具有不同的類型,則條件表達式將成為右值,無法對其進行賦值。
以上是C 的條件運算子 (?:) 如何根據運算元類型決定左值或右值?的詳細內容。更多資訊請關注PHP中文網其他相關文章!