![]() |
1
27
在C/C++中,如果仅使用值初始化已知大小数组的第一个元素,则剩余元素将被零填充,因此:
你想干什么就干什么。 这也适用于结构:
在C++中,语法特别允许“{}”初始化器,因此下面也将初始化数组:
也可能值得注意的是,在C++中,初始化列表中没有特定的初始化值的条目将是“值初始化”或“默认初始化”,这可能与零初始化不同,这取决于变量类型的构造函数是什么,编译器是否遵循C++ 98标准。或者C++03标准(这可能是C++98和C++03之间唯一有意义的区别)。值与默认初始化的整个情况相当复杂,因此如果您感兴趣,请查看以下答案: Do the parentheses after the type name make a difference with new? .
|
![]() |
2
18
这很好:) 请注意,如果执行以下操作:
只有数组的第一个元素将用非零数初始化,而其余元素将用零初始化。 |
![]() |
3
0
在适用的情况下,初始化器中未提及的所有元素将被初始化为该类型的零值。 sointfoo[10]={0};很好,未提及的其余元素也将为0 |
![]() |
4
0
哇,C似乎很简单,但即使在引用了多年的规范之后,仍然可以发现一些新的东西,这是令人惊讶的。 我只是在第一版规范(ANSI/ISO 9899-1990)中查找了它,果然,自动聚合的剩余部分是指定的(6.5.7)“如果有更少的…隐式初始化…”。 所以:任何非自动的东西。无论是否初始化,始终为0(或初始化时)。 |
![]() |
Community wiki · C中有哪些耗时的操作? 1 年前 |
![]() |
Community wiki · 将所有处理器电源都投入到任务中 1 年前 |
![]() |
Community wiki · C++为C添加了什么?[已关闭] 1 年前 |
![]() |
Community wiki · 打印1到1000,不带循环或条件 1 年前 |