欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程语言 > c/c++ >内容正文

c/c++

C++11中的bool变量不进行初始化,结果随机,可能是false也可能是true,所以一定要初始化

发布时间:2025/6/17 c/c++ 47 豆豆
生活随笔 收集整理的这篇文章主要介绍了 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,所以一定要初始化的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。