繁体   English   中英

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

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

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

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

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

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

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

作为总结:

[]运算符在声明期间对其操作数做了什么? 它只是让 object 能够存储 arrays 还是为阵列分配了 memory?

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

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

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

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

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

这个:

int iarr[] = {1,2};

意味着定义一个数组,其大小将与初始化列表中的元素数量相匹配。

在另一方面:

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

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

你也可以这样做:

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM