1、字符
就是用’’单引号括起来的单个字符. 如 ‘a’
2、字符串
就是用””双引号括起来的一个或多个字符. 如 “abc”
3、两者的区别
- 符号不同,字符使用单引号而字符串使用双引号
- 从数组的角度,字符串是由至少一个字符所组成的一维数组
4、字符串初始化
char 变量名[] = “字符内容”;
5、代码案例
5.1、源代码
1 2 3 4 5 6 7
| #include <stdio.h> int main() { char s[] = "xiaobei"; printf("%s\n",s); return 0; }
|
5.2、运行结果

6、字符串与数组的关系
6.1、源代码
1 2 3 4 5 6 7 8 9 10 11 12 13
| #include<stdio.h> int main() { char s[] = "xiaobei"; printf("s=%p\n",s); printf("&s=%p\n",&s); printf("s[0]=%p\n",&s[0]); for (int i = 0; i < 7; ++i) { printf("s[%d]=%c\taddress=%p\n",i,s[i],&s[i]); } return 0; }
|
6.2、运行结果

6.3、总结
从运行结果可以看出,字符串可以看做是一维数组
7、字符串结束符\0
由上面的知识,可知字符串可以看成是一维数组,但是
1
| char s[] = "xiaobei";与char s[] = {'x','i','a','o','b','e','i'};是不一样的
|
7.1、代码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
| #include<stdio.h> int main() { char s[] = "xiaobei"; for (int i = 0; i < 8; ++i) { if( s[i] == '\0' ){ printf("已经结束\n"); }else{ printf("s[%d]=%c\taddress=%p\n",i,s[i],&s[i]); } } printf("==================================\n"); char s1[] = {'x','i','a','o','b','e','i'}; for (int i = 0; i < 8; ++i) { if( s1[i] == '\0' ){ printf("已经结束\n"); }else{ printf("s[%d]=%c\taddress=%p\n",i,s1[i],&s1[i]); } } return 0; }
|
7.2、运行结果

7.3、总结
字符串是由\0为结束标志