【发布时间】:2009-06-28 04:39:32
【问题描述】:
我正在编写一个小型 C 程序来进行一些数字运算,它需要在函数之间传递数组。函数应该接受并返回指针,对吧?
例如,这个(我知道这可能不是最有效的):
int* reverse(int* l, int len) {
int* reversed = malloc(sizeof(*reversed)*len);
int i, j;
for (i = 0, j = len-1; i < len; i++, j--) {
reversed[j] = l[i];
}
return reversed;
}
我使用指针对吗?
【问题讨论】:
-
您的示例看起来不错。数组和指针之间的区别这一更广泛的主题之前已在此处讨论过,例如stackoverflow.com/questions/660752/…。
-
(这不符合答案)数组和指针代数的不同之处仅在于 sizeof(array_name) 返回 array_name 元素的计数,而不是数组的大小(以字节为单位)。