char *s="Golden Global View";
中的"Golden Global View"是字符串常量,是存储在数据段,和int a = 5中的5类似.
const char str[] = "Golden Global View";
中的const是告诉给编译器str中的数据不能修改.数据是存储在堆栈段的.但是还是可以修改的.
详情,可以参考帖子:
http://www.programfan.com/club/post-240796.html
在该帖子中有以下内容:
//a.c
#include <stdio.h>
#include <
string.h>
int
main()
{
char *s=
"Golden Global View";
char *l=
"lob";
char *p;
p=
strstr(s,l);
*p='\0';
printf(
"%s",s);
}
想输出lob前面的字符串,也就是Golden G
但是运行时出错,调试时也说有错误
原因是:
char *s="Golden Global View";是分配在常量区得,不能修改 ( *p='\0';)!
改成char s[] = "Golden Global View";
转载于:https://www.cnblogs.com/gaotaozhaolei/archive/2007/07/05/807286.html