我想知道数组下标运算符([]
)对对象的作用
从this question和this question中,我了解到[]
运算符获取一个对象的地址,将括号之间的内容添加到该对象,最后将和取消引用。获取地址。但是,在数组声明中,例如。
int iarr[] = {1,2};
int iarr2[2] = {1,2};
[]
运算符似乎并没有将括号中的值添加到操作数,尤其是在第二个示例中。相反,它似乎使对象能够存储数组。
此外,我的疯狂猜测是,在int arr2[2] = {1,2}
中,arr[2]
将为两个int
分配内存。真的吗?
摘要:
[]
运算符在声明期间对其操作数执行什么操作?它只是赋予对象存储数组的能力,还是为数组分配了内存?
答案 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};
方法定义两个元素的数组并将其初始化为1
和2
您还可以:
int iarr2[4] = {1,2};
方法定义一个四个元素的数组,并将前两个元素初始化为1
和2
。其余元素初始化为:0