我有一个数组int arr[5]
传递给函数fillarr(int arr[])
:
int fillarr(int arr[])
{
for(...);
return arr;
}
最佳答案
在这种情况下,您的数组变量arr
实际上也可以通过隐式转换作为指向内存中数组块开头的指针。您使用的语法如下:
int fillarr(int arr[])
只是一种语法糖。您真的可以用它替换它,它仍然可以工作:
int fillarr(int* arr)
因此,从同样的意义上说,您要从函数中返回的内容实际上是指向数组中第一个元素的指针:
int* fillarr(int arr[])
而且您仍然可以像使用普通数组一样使用它:
int main()
{
int y[10];
int *a = fillarr(y);
cout << a[0] << endl;
}