如何将值从第一个数组复制到另一个数组?

伯恩哈德约瑟夫斯

所以,我有一个包含 1 个值的数组。然后我将它复制(分配)到另一个数组。但是,如果我更改第二个数组的值,第一个数组的值也会更改。这是我的代码:

#include <stdio.h>

void change(int a[]){
    int *temp = a;
    for(int i=0; i<2; i++){
        a[i] = temp[0]*10+7;
    }
    //What I expect for the result is a[0] = 7, a[1] = 7 instead of a[0] = 7, a[1] = 77
}
int main(){
    int num[1];
    num[0] = 0;
    change(num);
    printf("%d", num[0]);
    return 0;
}

我的数组怎么了?

编辑:我想复制值,而不是数组的地址

编辑 2:我对上面的代码进行了一些更改,以使其更清楚我想要什么。

伊利

首先,这个声明

void change(int a[]);

与此声明等效

void change(int *a);

第二(有关更多信息,请参阅此链接),

C语言无一例外都是按值传递的。将指针作为参数传递并不意味着通过引用传递。

因此,您正在传递指针地址的副本(指向相同的数组/地址)。然后,您只需取消引用数组的第一个位置并为其分配一个值(这里实际上只是指针运算)。

也许它有助于重写代码以使指针算法更明显:

#include <stdio.h>

void change(int *a){
    int temp[1];
    *(temp+0) = *(a+0);
    *(a+0) = *(temp+0) * 10 + 7;
}

int main(){
    int num[1];
    *(num+0) = 0;
    change(num);
    printf("%d", *(num+0));
    return 0;
}

我不知道如何理解 编辑

编辑:我想复制值,而不是数组的地址

查看代码我无法理解您可能想要尝试实现的目标。请澄清这一点。

阅读了您的说明后,我了解到您不想修改main函数中的数组元素,而是函数中修改它们change

答案是你不能那样做。解释如上所述。我建议你花点时间学习 C 中的指针运算和数组。K&R 书在这方面非常出色;我真的推荐这本书。

您可以做的是将数组的内容复制到另一个数组中并修改该数组;例如在函数的开头或在调用函数并将复制的数组作为参数传递之前。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何将数组值复制到另一个数组

来自分类Dev

如何将一个数组的元素复制到另一个数组

来自分类Dev

如何将数组键复制到另一个数组,并用空数组替换值?

来自分类Dev

将第一个数组值复制到MongoDB中的另一个字段

来自分类Dev

将一个数组值复制到另一个数组

来自分类Dev

如何将数组复制到 UIImages 到另一个数组中?

来自分类Dev

如何使用某种逻辑将数组复制到另一个数组

来自分类Dev

如何使用某种逻辑将数组复制到另一个数组

来自分类Dev

如何将关联数组项递归复制到另一个单个数组项?

来自分类Dev

我正在尝试将一个数组的数据复制到另一个数组

来自分类Dev

将一个数组的内容复制到另一个数组

来自分类Dev

使用指针将一个数组的元素复制到另一个数组的函数

来自分类Dev

将x随机值从一个数组复制到另一个PHP

来自分类Dev

php-将值从数组复制到多维数组中的另一个数组

来自分类Dev

将子数组复制到另一个数组,同时更改它们?

来自分类Dev

如何将对象数组中的内容复制到C ++中的另一个数组中?

来自分类Dev

将指针数组值复制到C中另一个数组的末尾

来自分类Dev

如何使用偏移量和剪切将一个数组复制到另一个数组?

来自分类Dev

在C中将一个数组的元素复制到另一个

来自分类Dev

如何使用 for 循环将返回对象数组复制到另一个数组中

来自分类Dev

当我将一个数组复制到另一个数组时,为什么两个数组都被修改?

来自分类Dev

如何将一个数组与另一个数组排序

来自分类Dev

如何将数字的格式复制到另一个数字?

来自分类Dev

如何将数字的格式复制到另一个数字?

来自分类Dev

如何将一个数组值映射到另一个数组值

来自分类Dev

如何将此具有多个数组的结构复制到另一个临时结构?

来自分类Dev

汇编-内联汇编-从一个数组复制到另一个数组?

来自分类Dev

无法在 Angular 5 中将一个数组的内容复制到另一个数组

来自分类Dev

在汇编中将一个数组的内容复制到另一个数组

Related 相关文章

  1. 1

    如何将数组值复制到另一个数组

  2. 2

    如何将一个数组的元素复制到另一个数组

  3. 3

    如何将数组键复制到另一个数组,并用空数组替换值?

  4. 4

    将第一个数组值复制到MongoDB中的另一个字段

  5. 5

    将一个数组值复制到另一个数组

  6. 6

    如何将数组复制到 UIImages 到另一个数组中?

  7. 7

    如何使用某种逻辑将数组复制到另一个数组

  8. 8

    如何使用某种逻辑将数组复制到另一个数组

  9. 9

    如何将关联数组项递归复制到另一个单个数组项?

  10. 10

    我正在尝试将一个数组的数据复制到另一个数组

  11. 11

    将一个数组的内容复制到另一个数组

  12. 12

    使用指针将一个数组的元素复制到另一个数组的函数

  13. 13

    将x随机值从一个数组复制到另一个PHP

  14. 14

    php-将值从数组复制到多维数组中的另一个数组

  15. 15

    将子数组复制到另一个数组,同时更改它们?

  16. 16

    如何将对象数组中的内容复制到C ++中的另一个数组中?

  17. 17

    将指针数组值复制到C中另一个数组的末尾

  18. 18

    如何使用偏移量和剪切将一个数组复制到另一个数组?

  19. 19

    在C中将一个数组的元素复制到另一个

  20. 20

    如何使用 for 循环将返回对象数组复制到另一个数组中

  21. 21

    当我将一个数组复制到另一个数组时,为什么两个数组都被修改?

  22. 22

    如何将一个数组与另一个数组排序

  23. 23

    如何将数字的格式复制到另一个数字?

  24. 24

    如何将数字的格式复制到另一个数字?

  25. 25

    如何将一个数组值映射到另一个数组值

  26. 26

    如何将此具有多个数组的结构复制到另一个临时结构?

  27. 27

    汇编-内联汇编-从一个数组复制到另一个数组?

  28. 28

    无法在 Angular 5 中将一个数组的内容复制到另一个数组

  29. 29

    在汇编中将一个数组的内容复制到另一个数组

热门标签

归档