请问下这段代码是什么意思

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

也就是说,指针参数 b 是一个指向 int 类型数组的指针, 其中存储的是传入数组的首地址,也就是第一个元素的地址

这时候的 b 就相当与 a了。

其实可以这样改:

int *mov(int a[], int MAX) {
        int i, *b = a;

        for (i = 0; i < MAX; i++) 
                b[i] = a[i];

        return b;
}