为了账号安全,请及时绑定邮箱和手机立即绑定

C++局部变量必须初始化?

C++局部变量必须初始化?

C++
达令说 2019-01-02 22:26:47
C++中局部变量必须先主动初始化,但下面的代码会输出0 ,不知为何?#include<iostream>using namespace std;int main(){    int a;    cout << a << endl;    return 0; }
查看完整描述

1 回答

?
慕村225694

TA贡献1880条经验 获得超4个赞

C++局部变量必须先初始化,否则其内存上的值是未知的,若是前面用过这块内存且未消除这块内存上的值,则此时会读取到上次的值。
此外不同编译器对未初始化的局部变量会有不同的处理,比如上面的

#include<iostream>using namespace std;int main(){    int a;    cout << a << endl;    return 0;
}

在vs2017之前会输出0,在vs2017及之后会报错——C4700使用了未初始化的局部变量‘a’。即使有的编译器会把未初始化的局部变量赋值为0但是我们依旧要保持给所有局部变量初始化的好习惯,避免一些意外错误。


查看完整回答
反对 回复 2019-01-02
  • 1 回答
  • 0 关注
  • 796 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信