首頁 > 後端開發 > C++ > 以下 C/C 程式碼中'c”的值是多少:'int a = 2;”布爾 b = a; int c = 3 b;`?

以下 C/C 程式碼中'c”的值是多少:'int a = 2;”布爾 b = a; int c = 3 b;`?

Mary-Kate Olsen
發布: 2024-11-19 20:53:02
原創
981 人瀏覽過

What is the value of `c` in the following C/C   code: `int a = 2; bool b = a; int c = 3   b;`?

從 bool 到 int 的轉換:保證值為 0 或 1

將 bool 值轉換為 int 時會出現常見的誤解。雖然許多編譯器似乎將布林值儲存為 0 或 1,但問題仍然存在:這種行為是否得到保證?

問題:

考慮以下 C 程式碼片段:

c 的值是: 4 或 5?

答案:

是的,C 和C 中的c 永遠是4 .

解釋:

  • 解釋:
  • 解釋:
  • 解釋:
解釋: C : 根據 C標準 (§4.5/4),「bool 型別的右值可以轉換為 int 型別的右值,其中 false 變成 0,true 變成 1。」因此,b 轉換為 0。 C: 在C (§6.3.1.2/1) 中,「當任何標量值轉換為_Bool 時,如果該值轉換為_Bool,則結果為0比較等於0;否則結果為1。 轉換為 int: 從 _Bool 轉換為 int 很簡單,因為 int 可以同時儲存 0 和 1 (§6.3.1.3) 。在這兩種情況下,b 的值保持不變,導致 c 為 3 0 = 4。

以上是以下 C/C 程式碼中'c”的值是多少:'int a = 2;”布爾 b = a; int c = 3 b;`?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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