我正在编写一个小程序来进行一些数字运算,它需要在函数之间传递数组.函数应该接受并返回指针,对吧?
例如,这(我知道它可能不是最有效的):
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; }
我使用指针吗?
您的代码段是正确的.但是,C中的指针和数组确实不同.简单地说"指向类型T的指针"与"类型T的数组"不同.
请查看C Faq讨论指针和数组,以便更好地理解这一点.