【问题标题】:Assigning arrays to array [closed]将数组分配给数组[关闭]
【发布时间】:2020-08-11 22:55:45
【问题描述】:

如果使用 '=' 将已存在的包含元素的数组分配给空数组变量,它们是否连接?

例如 char x[] = "ABC"; 是现有数组,如果我创建新数组 char new[]; 并执行 char new[] = char x[]; 更改一个数组会影响另一个数组吗?

【问题讨论】:

  • 提示:strcpy 如果您正在操作 C 字符串。这不同于一般的数组。还要记住一些数组定义衰减为指针,所以这不是复制数据,而是复制指针。
  • empty array variable 什么是空数组变量? char new[]; 不会编译,char new[] = char x[]; 也不会编译。
  • @KamilCuk char new[]; will not compile:这取决于上下文。如果它是文件范围声明,它将编译。

标签: arrays c clang


【解决方案1】:

char x[] = "ABC"; 是 x 数组的初始化,它是复制字符串文字的唯一示例。

char new[] = char x[]; 什么都不做,因为它是无效的语法,程序根本无法编译。

char new[] = x; 是非法的,因为你不能用其他数组初始化数组。

char new[4];
new = x;

是非法的,因为你不能分配数组。

你需要:

char new[4];
strcpy(new,x);

或

memcpy(new,x,szieof(new));

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-10-09
    • 2017-09-29
    • 2019-05-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多