java里默认是false,C++里没有规定,所以依赖编译器实现,不要让编译器决定你的默认值,永远初始化。例如:boolg_a;//全局变量默认初始化为false即0voidf(){//未初始化,这个值是未定义,在vc6.0中debug版程序的默认值为0xcc//因此也相当于true。booll_b;} ...
跟了代码之后发现有一个 bool 变量没有初始化,debug 版本中总是 true ,release 版都是 false。 一般来说,类的的成员变量的默认值是什么?debug 版和 release 版的默认值是不同的吗?以后遇到 debug 版和 release 版表现不同的 bug 就比较好定位了。
应该是随机的,即使你换成BOOL,也是随机的 因为你定义的a是一个局部变量,它是当程序执行到此处才分配空间的,并且是在栈上分配的。这就是局部变量的特点。
一般来说局部变量未初始化,其默认值不确定,全局变量未初始化时,默认值一般为为。 java里默认是false,C++里没有规定,所以依赖编译器实现,不要让编译器决定你的默认值,永远初始化。 例如: boolg_a;//全局变量默认初始化为false即0voidf(){//未初始化,这个值是未定义,在vc6.0中debug版程序的默认值为0xcc//...