我知道在C++中,数组的名称只是指向数组第一个元素的指针。例如:
int foo[5];
=> foo 是一个指向整型的指针,它指向数组中的第一个元素,也就是a[0]
但接下来我们有这个:
int (*foo)[5]
在这里,foo 是一个指向类型数组的指针。那么,foo 是一个指向指针(int 类型)的指针吗?
我知道在C++中,数组的名称只是指向数组第一个元素的指针。例如:
int foo[5];
=> foo 是一个指向整型的指针,它指向数组中的第一个元素,也就是a[0]
但接下来我们有这个:
int (*foo)[5]
在这里,foo 是一个指向类型数组的指针。那么,foo 是一个指向指针(int 类型)的指针吗?
这是一个包含五个整数的数组:
int a[5];
这是一个指向包含五个整数的数组的指针:
int (*p)[5] = &a;
这是一个指向整数的指针:
int * q = a; // same as &a[0]
int foo[5];
int *ptr;
cout << sizeof(foo) << endl;
cout << sizeof(ptr) << endl;
你的第二个例子是一个指向大小为5的int
数组的指针。
cout << sizeof(foo) << endl;
cout << sizeof(*foo) << endl;
4
和20
,按预期工作。