如果我可以传入已知大小的数组:
void fn(int(*intArray)[4])
{
(*intArray)[0] = 7;
}
Run Code Online (Sandbox Code Playgroud)
为什么我不能归还一个:
int intArray[4] = {0};
int(*)[4] fn()
{
return &intArray;
}
Run Code Online (Sandbox Code Playgroud)
这里,"(*)"中的")"生成"语法错误:)".
该[4]
函数名后去,就好像它会在一个变量定义变量名后:
int (*fn())[4]
{
return &intArray;
}
Run Code Online (Sandbox Code Playgroud)
由于这是非常晦涩的语法,容易让阅读它的每个人感到困惑int*
,如果您没有任何特殊原因为什么它必须是指向数组的指针,我建议将数组作为 simple 返回。
您还可以使用 typedef 简化函数定义:
typedef int intarray_t[4];
intarray_t* fn() { ... }
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
329 次 |
最近记录: |