冷黎姝

导航

字符串

字符串

1,字符串的性质

1,字符串:以空字符(\0)结尾的char类型数组,包括空字符。字符串属于静态存储类别

2,字符串字面量(字符串常量):用双引号括起来的内容

3,要在“”内部使用双引号,必须在双引号前面加上一个反斜杠 (\)

2,如何声明并初始化字符串

用指定的字符串初始化数组m1:
const char m1[40] = "Limit yourself to one line's worth."; 

标准的数组初始化形式: 
const char m1[40] = { 'L','i', 'm', 'i', 't', ' ', 'y', 'o', 'u', 'r', 's', 'e', 'l', 'f', ' ', 't', 'o', ' ', 'o', 'n', 'e', ' ','l', 'i', 'n', 'e', '\", 's', ' ', 'w', 'o', 'r','t', 'h', '.', '\0'}; 

1,定义字符串数组时,必须让编译器知道需要多少空间。

2,指定的数组元素个数比字符串长度至少大1,所有未被使用的元素都被自动初始化为空字符\0

3,也可以让计算机自动计算数组的大小,但只有初始化数组时能这样:

const char m2[] = "If you can't think of anything, fake it.";

4,假设有这个初始化:

char car[10] = "Tata";

那么,以下表达式都为真:

car == &car[0]、car == 'T'、(car+1) == car[1] == 'a'。

5,指针表示法创建:const char * pt1 = "Something is pointing at me.";

与此相同(数组):const char ar1[] = "Something is pointing at me.";

3,数组和指针

1,分配存储内存的时间不同:数组是开始运行程序时,指针是开始执行程序时

2,数组名是常量,指针名是变量

3,指针表示法可以递增,数组表示法不可

4,指针变量+1, 不是加一个地址量(即一个字节), 而是加一个内存单元, 具体的长度由指针类型决定

5,可以对指针变量赋值,不能对数组名赋值

6,数组的内部实现也是依靠指针, 只是数组名是一个指针常量, 数组一次寻址(即通过数组名直接找到数组元素), 指针需要两次寻址(先确定指针变量的己值,然后定位到指针的他值)

posted on 2022-02-08 19:38  冷黎姝  阅读(89)  评论(0)    收藏  举报