gpt4 book ai didi

c - 为什么不能分配相同类型和大小的数组?

转载 作者:太空狗 更新时间:2023-10-29 17:16:51 26 4
gpt4 key购买 nike

如果我声明两个数组 - arr1arr2 - 例如,类型 int 每个大小为 10,并初始化第一个数组,我希望在 arr2 中创建 arr1 的副本;为什么我不能直接给出指令 arr2 = arr1

我知道可以分配两个相同类型的结构。为什么数组不是这种情况?

最佳答案

数组的问题在于,在所有表达式中(传递给 sizeof 和一元 & 运算符时除外)它们都转换为指向其第一个元素的指针。

所以,假设你有:

int arr1[10];
int arr2[10];
...

然后如果你写这样的东西

arr1 = arr2;

您实际上是在尝试这样做:

arr1 = &arr2[0];

或者这个:

&arr1[0] = &arr2[0];

在这两种情况下,您都会遇到阻止代码编译的问题。在前一种情况下,您试图在两个不兼容的类型(数组与指针)之间进行分配,而在后一种情况下,您试图修改一个常量指针(&arr1[0])。

关于c - 为什么不能分配相同类型和大小的数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14826952/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com