【发布时间】:2013-06-26 15:16:37
【问题描述】:
在函数中使用可变长度数组作为参数时
int sum(int n, int a[n]);
很容易理解第一个参数(n)指定了第二个参数(a)的长度。但是遇到了另一个用于 VLA 作为参数的原型
int sum(int n, int a[*]);
真的很难理解为什么在[] 中使用* 而不是n?
【问题讨论】:
-
你检查了吗
int sum(int n, int a[]); -
y@aaronman;是的。它的 c99 功能。
-
所以... int a[*] 是指针数组还是变长数组?光看代码就不简单了……?我的意思是......“int a[*]”与“int *a[]”相同还是只是“int a[]”?
-
Related/Duplicate question。请参阅 Jens Gustedt 的回答。
-
@hacks 如果您阅读了他回答的结尾,他基本上解释了 AndreyT 在下面解释的内容,即如果您不在函数原型中命名前面的长度参数,
[*]很有用。
标签: c arrays function function-parameter