harttle.github.io icon indicating copy to clipboard operation
harttle.github.io copied to clipboard

2015/10/05/cpp-variable-init

Open harttle opened this issue 6 years ago • 7 comments

C++手稿:哪些变量会自动初始化?

http://harttle.land/2015/10/05/cpp-variable-init.html

harttle avatar May 02 '18 18:05 harttle

LZ那里应该是int *i = new int吧,另外,定义在函数体中的非动态分配的内存是否会被采用默认的值初始化也依赖与编译器,在我这里的测试中发现g++5.x定义的局部变量也会被默认值初始为0。LZ总结的很棒,博客也很赞哦

By blueyi 2016-05-04T07:20:03Z

harttle avatar May 02 '18 18:05 harttle

嗯,你说的对。一会修改一下~感谢关注!

By Yang Jun 2016-05-04T08:40:19Z

harttle avatar May 02 '18 18:05 harttle

您好楼主,我运行了您的这个程序:

int g_var;

int *g_pointer;

static int g_static;

int main(){

int l_var;

int *l_pointer;

static int l_static;

cout<<g_var<<endl<<g_pointer<<endl<<g_static<<endl; cout<<l_var<<endl<<l_pointer<<endl<<l_static<<endl;="" }="" 多了个分号不说,但是有错误产生:="" error="" c4700:="" 使用了未初始化的局部变量“l_pointer”="" error="" c4700:="" 使用了未初始化的局部变量“l_var”="" 编译环境为vs2013,使用devc++不会报错,如果这样的话,那到底c++语法是怎么定义的?="" 我该怎么办?="">

By Lynn 2016-05-26T09:20:05Z

harttle avatar May 02 '18 18:05 harttle

c4700是一个warning,参见:https://msdn.microsoft.com/...
一般实践中变量肯定是要初始化的,这个warning的出现也很正常。

By Yang Jun 2016-05-27T03:22:02Z

harttle avatar May 02 '18 18:05 harttle

int[] arr 是什么鬼,那不是java风格吗?c++什么时候有这种风格了?

Yang-z avatar Feb 01 '20 12:02 Yang-z

new int[]{1, 2, 3};后面半段也没这这写法啊?我还以为c++有什么改变我不知道,一编译,不通过。。。

Yang-z avatar Feb 01 '20 12:02 Yang-z

感谢!已经改正。

harttle avatar Feb 01 '20 16:02 harttle