int sampleArray[] = {1,2,3,4,5};

我知道sampleArray现在指向数组的第一个元素。
然而,当我说&sampleArray是什么意思?这是否意味着我得到了sampleArray变量的地址?或者是指二维数组变量?
所以,我能这样做吗:
int (*p)[5] = &sampleArray?

最佳答案

不,sampleArray并没有真正指向数组的第一个元素。sampleArray是数组。
出现这种混淆是因为在大多数使用sampleArray的地方,它将被替换为指向数组第一个元素的指针。”“大多数位置”表示“它不是sizeof或一元-&运算符的操作数的任何位置”。
因为sampleArray是数组本身,而作为一元的操作数-&是它保持这种个性的地方之一,这意味着&sampleArray是指向整个数组的指针。

08-20 00:39