#include<iostream>
using namespace std;
void f(int arr[])
{
int a=sizeof(arr);
cout<<a;
}
int main()
{
int n;
cin>>n;
int arr[n];
int a=sizeof(arr);
cout<<a<<"\n";
f(arr);
}
输出:
24
8
为什么即使我打印相同阵列的大小,我的输出在两种情况下都不相同?
答案 0 :(得分:0)
在第一次调用中,它显示了数组的大小。 但在第二种情况下,它显示了传递指针的大小。
当数组通过函数传递时,它们会衰减为指针。通过后,:
sizeof(array)
显示指针的大小。