C++指向数组的指针

Chi*_*hin 3 c++ arrays pointers

我知道在C++中,数组的名称只是指向数组第一个元素的指针.例如:

int foo[5];
Run Code Online (Sandbox Code Playgroud)

=> foo是int类型的指针,它指向数组中的第一个元素,即[0]

但是,我们有这个:

int (*foo)[5]
Run Code Online (Sandbox Code Playgroud)

这里,foo是一个指向数组类型的指针.那么foo是一个指针(int类型)的指针吗?

Ker*_* SB 5

这是一个由五个整数组成的数组:

int a[5];
Run Code Online (Sandbox Code Playgroud)

这是一个指向五个整数数组的指针:

int (*p)[5] = &a;
Run Code Online (Sandbox Code Playgroud)

这是一个指向int的指针:

int * q = a;  // same as &a[0]
Run Code Online (Sandbox Code Playgroud)