首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何初始化C++数组的值?

如何初始化C++数组的值?
EN

Stack Overflow用户
提问于 2012-05-03 11:19:25
回答 1查看 146关注 0票数 0

1)在C++中,提供初始化器列表{}是否与{0}相同?这些声明将:

int x[10]={};

int x[10]={0};

都会产生相同的数组,所有元素都初始化为0?

2)在NULL不为0的系统/编译器上,指针数组的默认值初始化是否将元素设置为NULL或0?应该/可以使用以下哪些语句?

int *x[10]={NULL};

int *x[10]={0};

int *x[10]={};

使用空括号的new值初始化器--它们使用NULL还是0作为初始化器呢?

int **x=new int*[10]();

EN

回答 1

Stack Overflow用户

发布于 2012-05-03 11:28:49

  1. 是。这两个初始化器在功能上是等效的。不同之处在于,第二个方法显式地将第一个元素初始化为0,并隐式地值初始化数组中的所有剩余元素(对于int,这意味着在所有符合0).
  2. NULL标准的编译器上,将它们设置为int0 )。在本例中,这三个在功能方面都是相同的。NULL是一个扩展到0的宏,因此在编译器看来,前两个是相同的。我不确定C++11将如何处理,但指针的值初始化意味着将该指针设置为NULL.
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10424630

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档