试图复制数组的内容

Trying to copy contents of array

我正在尝试将内容从数组 a 复制到数组 b。当我在函数中测试时它似乎复制了,但是当我在主程序中打印出 b 时,它显示 0s

void array_copy(int a[], int b[], int n) {

for (int j = 0; j < n; j++) {
    b = a;
    //printf("%d\n", *b);
    a++;
    b++;
}

然后当我尝试在外面打印测试时,我得到 0s

printf("%d", *b);

知道为什么我得到 0 而不是那里应该有的东西。 (我确定数组 a 确实包含非零值)

b = a;

此行使指针 b 指向 a 指向的同一位置。你想要的(复制内容)应该是:

*b = *a;

试试这个:

void array_copy(int a[], int b[], int n) 
{
    int j=0;
    for ( j = 0; j < n; j++) 
    {
        *b = *a; /*  * will give the value */
        printf("%d\n", *b);
        a++;
        b++;
    }
}

int main ( void )
{
    int a[5] = {1,2,3,4,5};
    int b[5];
    array_copy (a, b, 5 );
    return ( 0 );
}