是指针和数组用C有何不同? [英] Are pointers and arrays any different in C?

查看:82
本文介绍了是指针和数组用C有何不同?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在写一个小的C程序做一些数字运算,它需要阵列绕过功能之间。职能应接受并返回指针,对吧?

I'm writing a small C program to do some number crunching, and it needs to pass around arrays between functions. The functions should accept and return pointers, right?

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

For example, this (I know it may not be the most efficient thing):

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;
}

我是使用指针吧?

Am I using pointers right?

推荐答案

您code片段是正确的。然而,指针和数组在C是确有不同。简单的说指针类型T并不等同于T类型的数组。

Your code snippet is correct. However, pointers and arrays in C are indeed different. Put simply "the pointer to type T" is not same as "the array of type T".

请看看Ç常见问题解答讨论指针与放大器;阵列更好地理解这一点。

Please have a look at C Faq discussing Pointers & arrays to get a better understanding of this.

这篇关于是指针和数组用C有何不同?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆