【发布时间】:2015-10-19 10:18:12
【问题描述】:
为了演示,这里是重新创建将动态分配的数组传递给函数的实例的示例代码。
#include <stdio.h>
#include <stdlib.h>
void fx1(int* arr) {/* code here */ }
int main() {
int *arr = (int *) malloc(sizeof(int) * 10);
fx1(arr);
free(arr);
return 0;
}
在示例中,我首先创建了一个动态分配的数组arr。然后,我将它传递给一个名为 fx1 的函数。 标题正是我的问题。将动态分配的数组传递给 C 中的函数是按值传递还是按引用传递的实例?如果您对此有答案,我还想要一份参考资料(书籍、文档等)。
【问题讨论】:
-
arr是一个指针。它指向malloc分配的数组的第一个元素。您将指针传递给该数组的第一个元素。将这种情况称为“传递数组”是对符号的滥用。 -
C 没有通过引用。
-
谢谢。我注意到 (1) C 没有按引用传递,并且 (2) arr 是指针,而不是数组。
标签: c arrays dynamic-allocation