C++ 将数组传递给C++;和查找大小
我对数组如何传递给函数感到困惑。在此代码中C++ 将数组传递给C++;和查找大小,c++,arrays,C++,Arrays,我对数组如何传递给函数感到困惑。在此代码中 #include <iostream> using namespace std; void func(int arr[]) { int n = sizeof(arr)/sizeof(arr[0]); cout << n << endl; } int main() { int arr[] = {3,6,2,4,7,9,5,1}; int n = sizeof(arr)/sizeof
#include <iostream>
using namespace std;
void func(int arr[])
{
int n = sizeof(arr)/sizeof(arr[0]);
cout << n << endl;
}
int main()
{
int arr[] = {3,6,2,4,7,9,5,1};
int n = sizeof(arr)/sizeof(arr[0]);
cout << n << endl;
func(arr);
return 0;
}
#包括
使用名称空间std;
无效函数(整数arr[]
{
int n=sizeof(arr)/sizeof(arr[0]);
cout当数组被传递给函数时,它会自动衰减为指针。尽管您将int-arr[]
作为参数写入,但arr
是一个指针,sizeof(arr)
产生sizeof(T*)
。取消引用int*
会产生int
。在您的机器上int*
和int
恰好大小相同,因此sizeof(int*)/sizeof(int)==1
“我对数组如何传递给函数感到困惑。”我一点也不奇怪!这并不奇怪。