字符串定义
本质上是以“\0”结尾的特殊字符数组;
具体实例
char name[6] = {'a', 'b', 'c', 'd', 'e'};
字符数组里没加‘\0’的时候,字符串长度应为字符串实际长度+1;char name[] = {'a', 'b', 'c', 'd', 'e', '\0'};
char name[] = "abcde";
这种写法等价于方式2.
深度理解存储方式
案例1
运行结果:
对比案例:
运行结果:
分析如下:
abcde由低到高存储,再来另一个abcd的时候在更低的位置申请四个char大小由低向高存储和上一个abcde接上了;
为了避免这种状况,尽量在定义字符串的时候加上\0
strlen()
使用strlen()求astr_2时返回数值为4,说明\0
不计入长度;
astr[6] = {'a', 'b', 'c', 'd', 'e'};
返回结果为5,与sizeof不同,strlen()返回的是真实字符串长度。