指针和数组在C中有什么不同吗?

Jav*_*ier 7 c arrays pointers

我正在编写一个小程序来进行一些数字运算,它需要在函数之间传递数组.函数应该接受并返回指针,对吧?

例如,这(我知道它可能不是最有效的):

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;
}
Run Code Online (Sandbox Code Playgroud)

我使用指针吗?

Adi*_*gal 14

您的代码段是正确的.但是,C中的指针和数组确实不同.简单地说"指向类型T的指针"与"类型T的数组"不同.

请查看C Faq讨论指针和数组,以便更好地理解这一点.

  • 为C Faq投票 - 比你得到的答案更详细. (2认同)