Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/141.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 数组类型(C+;+;)的初始化_C++_Arrays_Initialization - Fatal编程技术网

C++ 数组类型(C+;+;)的初始化

C++ 数组类型(C+;+;)的初始化,c++,arrays,initialization,C++,Arrays,Initialization,根据,列表初始化的效果之一是: 如果T是聚合类型,则执行聚合初始化 由于数组是聚合类型,当我初始化数组时,int数组[3]={1,2}, 我相信发生的是 列表初始化 聚合初始化 复制初始化,其中1、2是从初始化器列表的相应子句复制初始化的 剩余值已值初始化(零初始化) 这对我来说很有意义,因为数组的值将是 {1,2,0} 然而,当我继续阅读时,我注意到列表初始化的另一个效果是: 如果T是聚合类型,并且初始值设定项列表有一个 相同或派生类型(可能是cv限定)的元素 对象从该元素初始化(通过复制初始

根据,列表初始化的效果之一是:

如果T是聚合类型,则执行聚合初始化

由于数组是聚合类型,当我初始化数组时,
int数组[3]={1,2},

我相信发生的是

  • 列表初始化
  • 聚合初始化
  • 复制初始化,其中1、2是从初始化器列表的相应子句复制初始化的
  • 剩余值已值初始化(零初始化)
  • 这对我来说很有意义,因为数组的值将是 {1,2,0}

    然而,当我继续阅读时,我注意到列表初始化的另一个效果是:

    如果T是聚合类型,并且初始值设定项列表有一个 相同或派生类型(可能是cv限定)的元素 对象从该元素初始化(通过复制初始化 复制列表初始化,或通过直接初始化 直接列表初始化)


    声明一个数组
    int数组[3]={1}当“初始值设定项列表有一个元素”时,与有多个元素时的过程不同?(即
    int数组[3]={1,2};
    )?这对我来说毫无意义,但我不确定我遗漏了什么。

    正如引用所述,这种效果不会被应用

    如果T是聚合类型,并且初始值设定项列表有一个相同或派生类型(可能是cv限定的)的单个元素,则从该元素初始化对象(通过复制初始化进行复制列表初始化,或通过直接初始化进行直接列表初始化)


    给定
    int数组[3]={1}
    {1}
    有一个
    1
    类型为
    int
    ,它不是数组类型的相同或派生类型
    int[3]

    1
    int[3]
    的类型不同,因此该子句在这里不适用。例如
    st;S={t}其中
    S
    是一个聚合类