C++ 不使用';我哪里都不参考?
以下代码段:C++ 不使用';我哪里都不参考?,c++,C++,以下代码段: int ia[3][4] = { 0,1,2,3,4,5,6,7,8,9,10,11 }; int(&row)[4] = ia[1]; 我弄不明白为什么这个特殊的代码是有效的。就我目前的理解而言,我没有一个合理的解释。有人能帮我吗?我的问题是&行,它似乎没有引用任何地方。我唯一的解释是,这必须是有效的,因为这是一个初始化 我从书中得到以下解释: 我们将行定义为对 四个整数 哪个阵列?我们要初始化的那个 int ia[3][4] = { 0,1,2,3,4,5,6,7,
int ia[3][4] = { 0,1,2,3,4,5,6,7,8,9,10,11 };
int(&row)[4] = ia[1];
我弄不明白为什么这个特殊的代码是有效的。就我目前的理解而言,我没有一个合理的解释。有人能帮我吗?我的问题是&行,它似乎没有引用任何地方。我唯一的解释是,这必须是有效的,因为这是一个初始化
我从书中得到以下解释:
我们将行定义为对
四个整数
哪个阵列?我们要初始化的那个
int ia[3][4] = { 0,1,2,3,4,5,6,7,8,9,10,11 };
是一个由3个元素组成的数组,每个元素是一个由4个整数组成的数组
int(&row)[4] = ia[1];
int ia[3][4] = { 0,1,2,3,4,5,6,7,8,9,10,11 };
这里的int(&row)[4]
部分声明了一个名为row的引用,该引用可以引用4个int的数组。=ia[1]
对其进行初始化,以引用ia
数组中的第二个元素,即4个整数的数组
int(&row)[4] = ia[1];
int ia[3][4] = { 0,1,2,3,4,5,6,7,8,9,10,11 };
ia
是一个由3个数组组成的数组,每个数组有4个int
ia[0]
是{0,1,2,3}
ia[1]
是{4,5,6,7}
ia[2]
是{8,9,10,11}
我不太明白你为什么说我们将要“初始化”它——在这一点上,ia
已经完全初始化了
int(&row)[4] = ia[1];
(从标识符开始…):
行
…是一个
(&row)
…参考
(&row)[4]
…到四个数组
int(&row)[4]
…int
=ia[1]代码>
…由ia[1]
初始化(因为您必须初始化引用,无法绕过它)
因此,行
现在是对ia[1]
的引用,其类型为“四个数组int
”。这就是它的全部内容。(&row)[4]意味着它可以引用4个元素的数组,ia[1]是2d数组ia[]]中包含4个元素的一行,因此它工作正常。“这里int(&row)[4]部分声明了一个名为row的引用,可以引用4个int的数组。”-这意味着它只能引用,但不能?或者它是否指向正在初始化的数组?@KingJulian it可以并且确实,您可以初始化它(ia[1]
部分)以引用(或者如果您愿意,则指向,但“指向”一词通常与指针一起使用,而不是引用)4个整数的数组。也许你需要通读一遍,例如。