数组下标运算符([])对数组有什么作用?

时间:2019-10-14 11:31:29

标签: c++ arrays

我想知道数组下标运算符([])对对象的作用

this questionthis question中,我了解到[]运算符获取一个对象的地址,将括号之间的内容添加到该对象,最后将和取消引用。获取地址。但是,在数组声明中,例如。

int iarr[] = {1,2};
int iarr2[2] = {1,2};

[]运算符似乎并没有将括号中的值添加到操作数,尤其是在第二个示例中。相反,它似乎使对象能够存储数组。

此外,我的疯狂猜测是,在int arr2[2] = {1,2}中,arr[2]将为两个int分配内存。真的吗?

摘要:

[]运算符在声明期间对其操作数执行什么操作?它只是赋予对象存储数组的能力,还是为数组分配了内存?

3 个答案:

答案 0 :(得分:6)

[]仅在应用于表达式时才是运算符。
&*具有相同的原理。)

在声明中,它是类型的一部分,除了指定声明的变量是数组之外,它实际上没有做任何其他事情。

答案 1 :(得分:2)

您在混淆function isRunningStandalone() { return (window.matchMedia('(display-mode: standalone)').matches); } 运算符和声明数组的语法。

[]

声明一个名为int iarr2[2] = {1,2}; 的2个整数的数组,然后将该数组的元素初始化为1和2。这不是不是应用iarr2运算符。

答案 2 :(得分:1)

此:

int iarr[] = {1,2};

方法定义一个数组,该数组的大小将处理初始化列表中的元素数量。

另一方面:

 int iarr2[2] = {1,2};

方法定义两个元素的数组并将其初始化为12

您还可以:

 int iarr2[4] = {1,2};

方法定义一个四个元素的数组,并将前两个元素初始化为12。其余元素初始化为:0