字符串定义

本质上是以“\0”结尾的特殊字符数组;

具体实例

  1. char name[6] = {'a', 'b', 'c', 'd', 'e'};
    字符数组里没加‘\0’的时候,字符串长度应为字符串实际长度+1;
  2. char name[] = {'a', 'b', 'c', 'd', 'e', '\0'};
  3. char name[] = "abcde";
    这种写法等价于方式2.

深度理解存储方式

案例1
C语言定义字符串
运行结果:
C语言定义字符串
对比案例:
C语言定义字符串
运行结果:
C语言定义字符串
分析如下:
abcde由低到高存储,再来另一个abcd的时候在更低的位置申请四个char大小由低向高存储和上一个abcde接上了;
为了避免这种状况,尽量在定义字符串的时候加上\0

strlen()

使用strlen()求astr_2时返回数值为4,说明\0不计入长度;
astr[6] = {'a', 'b', 'c', 'd', 'e'};返回结果为5,与sizeof不同,strlen()返回的是真实字符串长度。

相关文章: