首頁 > 後端開發 > C++ > 為什麼條件運算子在 C 和 C 中處理左值的方式不同?

為什麼條件運算子在 C 和 C 中處理左值的方式不同?

Patricia Arquette
發布: 2024-11-07 16:45:02
原創
305 人瀏覽過

Why does the conditional operator handle lvalues differently in C and C  ?

C 和 C 之間的條件運算子差異

條件運算子 (?) 在 C 和 C 中提供不同的行為。具體來說,這涉及到它返回左值的能力。

在C 中,運算子可以傳回左值,允許使用以下表達式:

(true ? a : b) = 1;
登入後複製

但是,C 限制了此功能,需要使用if/else 或直接引用:

*(true ? &a : &b) = 1;
登入後複製

此外,C 授予?: 和= 相同的優先權運算符,將它們從右到左分組。這表示以下內容在語法上在 C 中是正確的:

(true ? a = 1 : b = 2);
登入後複製

相反,C 需要括號來解析此類表達式:

(true ? a = 1 : (b = 2));
登入後複製

以上是為什麼條件運算子在 C 和 C 中處理左值的方式不同?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板