指向int数组的C++指针

P. *_*ski 4 c++ arrays pointers

int main(){
    int a[4] = { 1,2,3,4 };
    int(*b)[4] = &a; //with a doesn't work
    cout << a << &a  << endl; //the same address is displayed
}
Run Code Online (Sandbox Code Playgroud)

所以,int(*b)[4]是一个指向int数组的指针.我试图将其初始化&aa两者.它只适用于第一个.
它们不是数组第一个元素的地址吗?

son*_*yao 6

从概念上讲,它们不是一回事.即使它们指向相同的地址,它们也是不兼容的指针类型,因此它们的用法也不同.

&a获取带有类型的数组的地址int [4],然后它表示指向数组的指针(即int (*)[4]).

a导致数组到指针衰减,然后它表示指向int(即int*)的指针.