布林值轉換為整數時是否總是為零或一?
當布林值轉換為整數時,許多編譯器似乎只保留 0 或 1,這引發了有關此行為可靠性的問題。讓我們來看一個例子:
int a = 2; bool b = a; int c = 3 b; // What is the result? 4 or 5?
答案: 是的,bool 轉換為整數時保證為 0 或 1。
C 語言:
C 標準(§4.5/4) 明確指出:「bool 型別的右值可以轉換為int 型別的右值,其中false 變為0,true 變為1。 C:
當一個值轉換為_Bool 時,它變為0 或1 (§6.3.1.2/1):「當任何標量值轉換為_Bool 時,結果為0如果值比較等於0;否則結果為1。 1,因此值沒有變化(第 6.3.1.3 節) ).
免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。
Copyright© 2022 湘ICP备2022001581号-3