【发布时间】:2017-11-13 08:37:30
【问题描述】:
我想将数组传递给函数。据我所知,有两种方法可以做到这一点:
1.
void f (int array[]) {
// Taking an array with square brackets
}
2.
void f (int *array) {
// Taking a pointer
}
每个都被调用:
int array[] = {0, 1, 2, 3, 4, 5};
f (array);
这两种方法有什么实际区别吗?
【问题讨论】:
-
这肯定被问过很多次了,但由于某种原因,真的很难找到重复的。答案是“没有区别”。
-
顺便说一句,还有第三种方式:
void f(int array[N]),和这两种方式没有区别。 -
正如我所说,没有区别。
-
'int 数组 = {0, 1, 2, 3, 4, 5};'这不是有效的数组声明。您可以将其更正为 'int array[] = {0, 1, 2, 3, 4, 5};'
标签: c arrays function pointers memory