c++ 变量不赋值,结果不可预知吗

来源:百度知道 编辑:UC知道 时间:2024/09/22 14:33:10
书上说如果变量不对其赋值,而直接进行计算,则结果不可预知,但为什么我弄得时候结果都为0,这不是确定的吗???

变量被声明后指向一块内存,如果不初始化不赋值,那么这块内存里边的指保存原样,而里边的值是不确定的,可能是0,也可能是最后一次时候该块内存是遗留的值。
当然,个别编译器可能在分配的时候做了初始化的动作。
保持良好习惯是编码的必备素质

c里面是对地址进行操作的,你不赋值,地址指向一个不确定的值,肯定不可预知!

首先,全局变量和静态变量,C++ 标准中规定,编译去会帮你初始化的。但是对于局部变量,C++ 标准是没有强制要求的。
这样,可能不同的编译器有不同的实现。

另外,在 DEBUG 的情况下,大多数 编译器都会做初始化工作,但是到了 release 版里面,他们就不做了。

所以,要养成变量声明后立即初始化这个好习惯。

不可预知,不过我不赋值时结果好像都是一个很大的负数,应该和操作环境有关系的吧。。