字符指针变量指向的字符串常量中的内容是不能修改(不能对它在赋值)

在一个双引号""内的字符序列或者转义字符序列称为字符串常量

例如:"HA HA!"  "abc"  "\n\t"

这些字符串常量是不能改变的,如果试图改变指针所指向的内容是错误的

因为字符串常量是存在静态内存区的,不可以改变的。

如定义字符串常量:

char* a="i love you.";

a[3]='p'(非法操作)。

因为a[3]本来就是一个常量,常量不能被改变。(比如 1=2一样)

如定义字符串变量:

 char a[]="i love you.";
 a[3]=‘p’是可以的.

因为这个a[3]不同于上例中的 这个是一个 char 类型的变量 。

但是字符指针变量指向是可以改变的。

如:char *a="I love my china"

        char *a="I am student"

这个是可以的。

你可能感兴趣的:(c/c++)