char *p="abc"
作为一个常量,存放在空间的数据区,其内容不可改变
(
在
win tc
和
tc3.0
中可以改变,但在
vc++6.0
中不可以。在
ANSI C
中,是不可以改变的)
char s[]="abc"
存放在栈内,其内容可以改变
char *p="abc" ;//
如果程序中企图通过指针
p
来修改字符串
“abc”
的内容,那该程序不可移植。
char s[]="abc"
;
//
可移植的写法。
指针
p
指向常量字符串
“wen”
(位于静态存储区,内容为
wen\0
),常量字符串的内容是不可以被修改的。从语法上看,编译器并不觉得语句
p[0]= ‘X’
有什么不妥,但是该语句企图修改常量字符串的内容而导致运行错误