char *c = "abc" 与char c[]="abc" 区别差异,该怎么处理

char *c abc 与char c[]abc 区别差异内存是怎么分配的指针是如何存储的呢小弟快抓成秃头了~~~[解决

char *c = "abc" 与char c[]="abc" 区别差异
内存是怎么分配的   指针是如何存储的呢
小弟快抓成秃头了~~~

[解决办法]
char* c= "abc "中,c是一个指针,指向一个常量字符串 "abc "。
char c[]= "abc "中,c是一个数组,相当于char c[4]={ 'a ', 'b ', 'c ', '\0 '}。
[解决办法]
1) char *c = "abc ";

"abc " 占用的内存分配在 常量区(也就是说不能修改)

c 指向这个常量区的空间


2) char c[] = "abc ";

"abc " 占用的内存分配在 常量区(也就是说不能修改)(同1)

然后把这个常量区的 "abc " 复制一份到 c 指向的 栈上