1、字符常量
用双引号括起来的一串字符是字符串常量,系统自动为其添加空字符'\0'(ASCII码为0,'0'的ASCII码为'48')
e.g.
printf("How are you");
2、字符串变量
1、字符数组
char str[]="china";
这里str和字符串内容一起被保存在栈内存或静态内存中,所以字符串的内容时可以修改的,但是str是个变量名,它的不可以被修改。
str = "hello";//err
str[0]='w';//right
2、字符指针
char *pstr = "china";
pstr是一个指向常量存储区(数据段,不能被修改)中的字符串的指针变量。(这里没有预先给字符串分配内存,所以系统自动将字符串分配到数据段)
可以修改pstr的值(指向),因为pstr在栈内存中,但是不可以对它所指向的存储单元进行写操作
*pstr='w';//err
既可以修改变量,又可以修改字符串的办法
先用字符数组初始化字符串,再用指针指向字符数组
char str[]="hello";
char *pstr=str;
*pstr='w';//right