gpt4 book ai didi

c++ - 类型 "incompatible types when assigning to type ‘char[100]’ 的错误消息 ‘char *’“

转载 作者:行者123 更新时间:2023-11-30 18:39:31 25 4
gpt4 key购买 nike

当我尝试执行以下行时,编译器给我一个错误:“从类型‘char *’分配给类型‘char[100]’时出现不兼容的类型”:

records[i].address = records[i+1].address;

records是一个 struct rec 数组,其定义如下:

struct rec{
char address[100];
}

为什么会出现这个错误?左右侧为同一类型。

最佳答案

char[100]char * 的类型不同。一个是包含 100 个字符变量的数组,另一个是包含字符变量地址的变量。

您可以将char[100]“分配”给char *,只是因为“裸”数组计算为其第一个元素的地址 - 地址可以不保存任何东西 - 它不是变量,它是变量所在的地方。

因此,

char array[ 100 ];
char *ptr = array;

有效,同时

char array[ 100 ];
char *ptr;
array=ptr;

没有。第一种情况是说 ptr 现在指向 array 的第一个元素。第二个是“array的地址应该被赋予ptr的值,这实际上是废话。

关于c++ - 类型 "incompatible types when assigning to type ‘char[100]’ 的错误消息 ‘char *’“,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29618222/

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