这个片段中的指针发生了什么?

Mik*_*ike 7 c pointers

我很好奇为什么这是一个错误以及错误消息的含义.这是一些代码:

int *x[] = {"foo", "bar", "baz"};
int *y[] = {"foo", "bar", "baz"};

x = y;
Run Code Online (Sandbox Code Playgroud)

我尝试编译,我得到这个:

error: incompatible types when assigning to type ‘char *[3]’ from type ‘char **’
Run Code Online (Sandbox Code Playgroud)

问题#1为什么这是一个错误?和问题#2为什么类型不同?

Max*_*keh 5

如上所述,存在很多问题.首先,数组文字是类型char*[],x而且y是类型int*[].其次,你不能直接分配数组,因为它们实际上是常量指针.

  • 我真的希望这个模因会死.数组不是常量指针 - 它们不是任何类型的指针,它们是数组(相同类型的非空连续序列的对象). (2认同)