复制数组导致 0?

标签 c arrays copying

<分区>

我正在学习 C,我的一个函数(此处未显示)取决于两个相同的数组。我有一个数组,正在尝试生成一个副本,但结果是两个数组在复制后都变成了 0。我不知道这是怎么发生的。任何人都可以帮助解释为什么会发生这种情况并提供如何正确执行的解决方案吗?

#include <stdio.h>

int main(){

    int array[5]={3,2,7,4,8};
    int other_array[5]={0,0,0,0,0};

    for (int i=0; i<5; i++) array[i]=other_array[i];    //Copies array into other_array

    printf("array is:\n");
    for (int j=0; j<5; j++) printf("%d", array[j]);
    printf("\nother_array is:\n");
    for (int i=0; i<5; i++) printf("%d", other_array[i]);
    printf("\n");

    return 0;
}

/*
When run this yields
**********************
array is:
00000
other_array is:
00000
*/

最佳答案

//Copies array into other_array
for (int i=0; i<5; i++) array[i]=other_array[i];    

尝试:

other_array[i] = array[i];

赋值运算符将右操作数的值赋给左操作数中的对象。而不是相反。

此外,如其他答案所述:

printf("\nother_array is:\n");
for (int i=0; i<5; i++) printf("%d", array[i]);

您正在打印 array 而不是 other_array

关于复制数组导致 0?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16136055/

相关文章:

c++ - 设置 A=B 是否会以某种方式混淆 B? (所有 vector )C++

sql - 在 PostgreSQL 中组合两个查询

c - 你如何获得传递给函数的数组的大小?

android - 如何知道 SD 卡上存储图像的位置,DCIM/Camera,DCIM/100MEDIA?

javascript - 无法在 JavaScript 中将对象属性复制到另一个对象

java 用 printf 显示和格式化

c - 如何强制 C 编译器在用 void* 声明时用 long 参数定义函数

在 C 中创建一个 int 数组数组?

c - 如何禁用 visual C++ Express 2008 上的接口(interface)关键字?

c - 哪个进程首先终止? child 还是 parent ?