我理解是这样的:
int foo = 5;
int * fooPointer = &foo;
但我知道你也可以做这样的事情:
int foo[5] = {32,12,4};
int * fooPtr = food;
这很奇怪,因为当您使用 int
执行此操作时,您必须将 &
运算符放在 foo
之前,但如果它是一个数组,则不必这样做。你可以声明一个指针,然后说它是一个数组?
它不是一个列表;它是一个数组。
在大多数情况下,数组名称的计算结果为数组第一个元素的地址,您可以将其分配给(或用于初始化)指向数组元素类型的指针。
有一些例外(将数组传递给sizeof
或地址运算符(一元&
),或通过引用传递数组,但这些都不适用于此处。