c++ - 在 C++ 中返回一个已知大小的数组?

标签 c++ arrays return

如果我可以传入一个已知大小的数组:

void fn(int(*intArray)[4])
{
    (*intArray)[0] = 7;
}

为什么我不能返回:

int intArray[4] = {0};
int(*)[4] fn()
{
    return &intArray;
}

这里,“(*)”中的“)”会产生“语法错误:)”。

最佳答案

[4] 位于函数名之后,就像它位于变量定义中的变量名之后一样:

int (*fn())[4]
{
    return &intArray;
}

由于这是非常晦涩的语法,容易让阅读它的每个人感到困惑,如果您没有任何特殊原因,我建议将数组作为简单的 int* 返回它必须是指向数组的指针。

您还可以使用 typedef 简化函数定义:

typedef int intarray_t[4];

intarray_t* fn() { ... }

关于c++ - 在 C++ 中返回一个已知大小的数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3005527/

相关文章:

c++ - 调试网络应用程序和测试同步性?

c++ - 为什么这段代码不起作用,我该如何解决?

c# - 将 int 数组的值添加到另一个 int 数组的值 C#

具有返回值和返回字符串的 bash 函数

Python 字典只返回 1 个条目?

firefox - 关闭 “unreachable code after return statement” 警告

c++ - 取值后程序停止

javascript - 合并排序 : merge function array index zero returning multiple indexes

c# - 乘以我的数组值

指向整数数组的 C++ 指针