C++ 2D数组中指针衰减后的大小

C++ 2D数组中指针衰减后的大小,c++,c,arrays,C++,C,Arrays,考虑以下玩具程序的输出: void fun(int arr[][3]) { cout<<sizeof arr; } int main() { int arr[5][3]; cout<< sizeof arr<<" "; func(arr); } void-fun(int-arr[][3]){ coutin fun() arr是指向3个整数数组的指针。因此,输出是指针的大小 void fun(int arr[][3]); v

考虑以下玩具程序的输出:

void fun(int arr[][3]) {
    cout<<sizeof arr;
}

int main() {
    int arr[5][3];
    cout<< sizeof arr<<" ";
    func(arr);
}
void-fun(int-arr[][3]){
coutin fun()

arr是指向3个整数数组的指针。因此,输出是指针的大小

void fun(int arr[][3]);

void fun(int (*arr)[3]);

以上是等效的。换句话说,
arr
是指向
int[3]
的指针。因此它的大小与指针一样,在您的情况下正好是4字节。

问了这么多次,您应该用谷歌搜索它,
arr
只是一个指针,而不是
fun()中的数组。
arr[]
是指向3个整数数组的指针。在32位平台上,指针的大小为4。
void fun(int arr[][3]);

void fun(int (*arr)[3]);