Ste*_*gle 0 c++ struct initialization
这两种方式初始化结构之间是否存在差异:
structVar = {}
Run Code Online (Sandbox Code Playgroud)
和
structVar = {0}
Run Code Online (Sandbox Code Playgroud)
这实际上取决于结构的性质.
如果它是一个聚合体,那么这两者基本上是等价的.但是,第一个是通用的,因为它只是对结构进行值初始化.第二个要求struct的第一个成员可以初始化0,并初始化其余的元素,就好像它们每个都由一个空的初始化器初始化{},换句话说,
structVar = {0, {}, {}, {}, ..... };
Run Code Online (Sandbox Code Playgroud)
所以每个剩余的元素都是值初始化的.
如果它不是聚合,那么它取决于提供的构造函数(如果有的话).根本没有足够的信息可以说.
| 归档时间: |
|
| 查看次数: |
157 次 |
| 最近记录: |