为什么这段代码会输出两个不同的结果?

问题描述

我正在尝试创建一个返回数组长度的函数,但该函数总是返回 8

#include <iostream>
using namespace std;

int size(int arr[])
{
    return sizeof(arr);
}

int main()
{
    int v[] = {1,2,4};
    cout << sizeof(v) << endl;
    cout << size(v);

    return 0;
}

解决方法

这是因为数组函数参数“arr”上的“sizeof”将返回“int*”的大小..