【发布时间】:2014-02-22 21:36:11
【问题描述】:
第一个声明如下
char*str="hello";
在这种情况下,字符串文字存储在只读存储器中。
第二个声明如下
char str[10]="name";
在这种情况下,字符串文字存储在可写内存中。
为什么两个字符串字面量分配的内存不同?
【问题讨论】:
-
@GrijeshChauhan :非常感谢您在评论中给出的问题中的回答?
-
@GrijeshChauhan :在您的回答中,您说在程序启动时将字符串复制到数组中。那么这就意味着字符串占用双倍内存。
-
@kevingomes 不,只是为了解释一下,声明
char str2[] = "hello";只是意味着将创建一个带有字符串"hello"的数组。
标签: c string pointers memory char