C++11中的bool变量不进行初始化,结果随机,可能是false也可能是true,所以一定要初始化
生活随笔
收集整理的这篇文章主要介绍了
C++11中的bool变量不进行初始化,结果随机,可能是false也可能是true,所以一定要初始化
小编觉得挺不错的,现在分享给大家,帮大家做个参考.
~~ 经过验证,定义一个bool型数组而不赋初值, 每一个元素的值都为0 ~~
自己以前验证时,数组长度小,结果带有随机性,打印出来全是0,误以为不初始化时是false,这是错误的,当数组开大一点,就会发现,打印出来的既有0,也有非0值,非0值就是true。
经过实验,发现除了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变量占一个字节,当它是负数或者正数时都为真,为0时为假。
布尔型变量的值只有 真 (true) 和假 (false)。
网上一句话说得挺好:“bool变量在java里默认是false, C+ +里没有规定,所以依赖编译器实现,千万不要让编译器决定你的默认值,永远初始化”
总结
以上是生活随笔为你收集整理的C++11中的bool变量不进行初始化,结果随机,可能是false也可能是true,所以一定要初始化的全部内容,希望文章能够帮你解决所遇到的问题。
- 上一篇: C++ string类中的find()函
- 下一篇: C/C++中.和-的用法区别