这两个定义有什么区别?
char *string = "MyString";
char string[] = "MyString";
据我所知,第一个是指向字符串的指针。
答案 0 :(得分:1)
第一个是指向字符串文字的指针,第二个是使用字符串文字的内容初始化的数组(优化后的BTW指向string
点的位置)。
第一个存在于程序存储器的只读段中,因此无法修改。
第二个是一个包含9个元素的数组,您可以修改9个元素中的任何一个,包括未在问题代码中明确设置的termnating null
字节。