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

What does the array subscripting operator ([ ]) do to an array?

本文关键字:数组 什么 作用 下标 运算符      更新时间:2023-10-16

我想知道数组下标运算符([](对对象做了什么

从这个问题和这个问题中,我了解到[]运算符获取对象的地址,将括号之间的任何内容添加到对象中,最后取消引用总和以获得地址。但是,在数组声明中,例如。

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

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

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

总结一下:

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

[]仅在应用于表达式时才是运算符。
(同样的原则适用于&*

在声明中,它是类型的一部分,除了指定声明的变量是一个数组之外,并没有真正"做"任何事情。

您混淆了[]运算符和声明数组的语法。

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

声明一个名为 2 个整数的iarr2个数组,然后将数组的元素初始化为 1 和 2。它应用[]运算符。

这个:

int iarr[] = {1,2};

表示定义一个数组,其大小将在初始化列表中产生大量元素。

另一方面:

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

表示定义一个双元素数组并将其初始化为12

您还可以执行以下操作:

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

表示定义一个四元素数组并将前两个元素初始化为12。其余元素初始化为:0

相关文章: