首頁 > 後端開發 > C++ > 是`cout

是`cout

Barbara Streisand
發布: 2024-12-15 02:17:09
原創
1002 人瀏覽過

Is `cout

揭開「cout

在最近的一次採訪,一個神秘的編碼難題浮出水面:

int a = 0;
cout << a++ << a;
登入後複製

有誘人的選項可供選擇,包括10、01,以及神秘的“未定義行為”,受訪者自信地選擇了01,理由是他們對序列點的理解。然而,面試官的回答卻讓人大吃一驚:正確答案竟然是未定義的。

探索未定義的領域

序列點通常保證在先前完成副作用進入後續評估。有趣的是,所討論的陳述在參數評估之間不具有任何序列點。這意味著參數“a”可以在參數“cout

C 17 中的一線希望

C 17 中的編碼格局已經發生了轉變,其中修改了表達評估規則。最新指南明確規定,在移位運算子表達式中,第一個參數(「E1」)的所有計算和副作用都在第二個參數(「E2」)的計算和副作用之前排序。

這個關鍵調整要求有問題的程式碼片段輸出 01。難以捉摸的未定義行為已被消除,取而代之的是預定結果的確定性。

更深層的深入探討P0145R3 的餘燼

對於那些尋求更全面理解的人,技術論文P0145R3:細化Idiomatic C 的表達式求值順序深入研究了修訂後的表達式求值順序的複雜細節,提供了深刻的見解深入了解C 編碼範式的演變。

以上是是`cout的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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