簡體   English   中英

使用cout打印未初始化的bool(C ++)

[英]Printing an uninitialized bool using cout (C++)

我有一個類,其中bool數據成員未被構造函數初始化。 如果我做

cout << x.myBoolDataMember;

其中x是此類的一個對象,其中bool尚未初始化,我有時得到一個隨機數而不是0或1.(我正在使用gcc 。)這種行為是否符合Standard

這種行為是否符合標准?

是! 在代碼中使用垃圾值(未初始化)會調用未定義的行為

是。 未初始化的變量可以具有任何值。

一旦“<<”運算符不檢查bool,這種行為是正確的。
這里的問題隱藏在bool本身中:程序使用多個位來存儲bool。 這取決於實施。 有時只能使用一位來存儲bool。
有時候更多,而且就是這種情況。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM