gpt4 book ai didi

c++ - 为什么函数不知道数组大小?

转载 作者:太空宇宙 更新时间:2023-11-03 10:36:24 25 4
gpt4 key购买 nike

如果我写

int main()
{
int a[100] = {1,2,3,4,};
cout<<sizeof(a)/sizeof(a[0])<<endl; //a is a pointer to the first elem of array,
//isn't it
return 0;
}

我得到 400!

如果我写

void func(int *a);

int main()
{
int a[100] = {1,2,3,4,};
func(a);
return 0;
}

void func(int *a)
{
cout<<sizeof(a)/sizeof(a[0])<<endl; //a is a pointer to the first elem of array
}

然后我得到1!

那么为什么函数不知道数组大小呢?

最佳答案

数组在传递给函数时会衰减为指针,因此您得到的只是指针的大小。

关于c++ - 为什么函数不知道数组大小?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2749450/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com