c++ - 在函数中返回数组

标签 c++ arrays pointers function return

我有一个数组 int arr[5] 被传递给函数 fillarr(int arr[]):

int fillarr(int arr[])
{
    for(...);
    return arr;
}
  1. 如何返回该数组?
  2. 我将如何使用它,比如我返回了一个指针,我将如何访问它?

最佳答案

在这种情况下,您的数组变量 arr 实际上也可以通过隐式转换被视为指向内存中数组 block 开头的指针。您正在使用的这种语法:

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;
}

关于c++ - 在函数中返回数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3473438/

相关文章:

arrays - 试图在 swift 中声明一个自定义对象数组

c - 未初始化的 char 数组的行为

c - C中指向指针和realloc的指针

c - 双指针c内存故障

c++ - C++-以某种方式将Enter插入到缓冲区/Stop cin.ignore中需要输入吗?

c++ - 以任意顺序传递参数的构造函数排列

java - 为什么我的数组中唯一的东西是文件的最后一行?

c - 指针和结构

c++ - 为什么我的 printList 函数不起作用?

c++ - C++中自创建的Vector类中的指针(代码说明)