C++11中的bool变量不进行初始化,结果随机,可能是false也可能是true,所以一定要初始化
生活随笔
收集整理的這篇文章主要介紹了
C++11中的bool变量不进行初始化,结果随机,可能是false也可能是true,所以一定要初始化
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
~~ 經過驗證,定義一個bool型數組而不賦初值, 每一個元素的值都為0 ~~
自己以前驗證時,數組長度小,結果帶有隨機性,打印出來全是0,誤以為不初始化時是false,這是錯誤的,當數組開大一點,就會發(fā)現,打印出來的既有0,也有非0值,非0值就是true。
經過實驗,發(fā)現除了bool數組,對于單個或者多個bool變量來說,不初始化的話,其值也是隨機的。
#include<iostream> using namespace std; int main() {bool a,b,c,d,f,e,g,h,i,j,k,l,m,n;cout<<a<<" "<<b<<" "<<c<<" "<<d<<" "<<e<<" "<<f<<" "<<g<<" "<<h<<" "<<i<<" "<<j<<" "<<k<<" "<<l<<" "<<m<<" "<<n<<endl;bool x,y,z;cout<<x<<" "<<y<<" "<<z<<endl;bool x1,y1,z1;cout<<x1<<" "<<y1<<" "<<z1<<endl;bool x2=-56;if(true==x2) cout<<"負數(-56),bool值為true" <<endl;else if(false==x2) cout<<"負數,bool值為false" <<endl; }
此為上面代碼的運行結果。
C++中,bool類型的數值非0代表真。數值0表示false(假)。
也就是說,bool變量占一個字節(jié),當它是負數或者正數時都為真,為0時為假。
布爾型變量的值只有 真 (true) 和假 (false)。
網上一句話說得挺好:“bool變量在java里默認是false, C+ +里沒有規(guī)定,所以依賴編譯器實現,千萬不要讓編譯器決定你的默認值,永遠初始化”
總結
以上是生活随笔為你收集整理的C++11中的bool变量不进行初始化,结果随机,可能是false也可能是true,所以一定要初始化的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: C++ string类中的find()函
- 下一篇: C/C++中.和-的用法区别