这两个定义有什么区别?

时间:2016-04-28 13:44:40

标签: c

这两个定义有什么区别?

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

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

1 个答案:

答案 0 :(得分:1)

第一个是指向字符串文字的指针,第二个是使用字符串文字的内容初始化的数组(优化后的BTW指向string的位置)。

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

第二个是一个包含9个元素的数组,您可以修改9个元素中的任何一个,包括未在问题代码中明确设置的termnating null字节。