试图复制数组的内容
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 );
}
我正在尝试将内容从数组 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 );
}