是指针和数组用C有何不同? [英] Are pointers and arrays any different in C?
本文介绍了是指针和数组用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屋!
查看全文