void mov(int a[MAX],int *b)
{
int j;
for(j=0;j<MAX;j++)
b[j]=a[j];
return ;
函数的意图应该是要复制一个整型数组,把数组a里的值复制到数组b里,复制数组的话,要传递一个指针和这个数组的长度。数组的长度应该单独传递。
int * b
和
int a[]
都表明接受一个整形指针,本质是一样的,只是写法不同。
这段代码应该没法通过编译吧,我改一下:
void mov(int a[],int *b,int MAX)
{
int j;
for (j = 0; j < MAX; j++)
b[j] = a[j];
return;
}
创建一个指针数组b,其中的每一项都指向a中相同位置的元素
// 相当于
int *b = a[Max];
其实可以这样改:
int *mov(int a[], int MAX) {
int i, *b = a;
for (i = 0; i < MAX; i++)
b[i] = a[i];
return b;
}