返回指向数组的指针的 C 函数语法正确吗?

Dan*_*sen 5 c arrays syntax pointers declaration

在 C 中,您可以声明一个指向数组的变量,如下所示:

int int_arr[4] = {1,2,3,4};
int (*ptr_to_arr)[4] = &int_arr;
Run Code Online (Sandbox Code Playgroud)

尽管实际上它与声明一个指向 int 的指针相同:

int *ptr_to_arr2 = int_arr;
Run Code Online (Sandbox Code Playgroud)

但从语法上来说,它是不同的。

现在,一个返回这样一个指向数组(例如 int )的指针的函数会是什么样子?

Eri*_*hil 6

的声明intint foo;.

4 数组的声明intint foo[4];

指向 4 数组的指针的声明intint (*foo)[4];

返回指向 4 数组的指针的函数的声明intint (*foo())[4];。可以()用参数声明来填充。