C 这两个定义有什么区别?

C 这两个定义有什么区别?,c,C,这两个定义有什么区别 char *string = "MyString"; char string[] = "MyString"; 据我所知,第一个是指向字符串的指针 第一个是指向字符串文本的指针,第二个是用字符串文本的内容初始化的数组(顺便说一句,优化后的字符串正好指向string点的位置) 第一个存在于程序内存的只读段中,因此无法修改 第二个是由9个元素组成的数组,您可以修改9个元素中的任意一个,包括问题代码中未明确设置的术语null字节。C没有字符串类型。答案可以通过学习语言基础知识找到

这两个定义有什么区别

char *string = "MyString";
char string[] = "MyString";

据我所知,第一个是指向字符串的指针

第一个是指向字符串文本的指针,第二个是用字符串文本的内容初始化的数组(顺便说一句,优化后的字符串正好指向
string
点的位置)

第一个存在于程序内存的只读段中,因此无法修改


第二个是由9个元素组成的数组,您可以修改9个元素中的任意一个,包括问题代码中未明确设置的术语
null
字节。

C没有字符串类型。答案可以通过学习语言基础知识找到。它们的类型和编译器为访问对象而创建的间接寻址的数量。另请参见