字符数组、字符指针、字符串
20 March 2013
- 字符数组,就是元素是字符的数组。
- 字符串(C-Sytle String),是字符变量的数组,以’’结尾。可见,字符串是特殊的字符数组。
- 字符指针,即char *a。
- 字符串操作函数
strlen
、strcpy
、strlen
定义在string.h中。 - 如果用字符串字面常量初始化一个字符数组,数组长度会加1,因为要保存
\n
。 -
调用字符串操作函数只能使用字符指针作为参数,所以传递的既可以是字符数组,也可以是字符串。如果传递的是字符数组,而且没有加入
\n
的话,遍历的时候会因为找不到结束符而持续遍历,可能出现内存访问错误或结果不正确的情况。char arrChar3[3]; arrChar3[0] = ‘a’; arrChar3[1] = ‘b’; arrChar3[2] = ‘c’; printf(“%dn”, strlen(arrChar3)); // 7。结果明显错误
-
字符数组、字符指针、字符串实例:
#include
#include main() { char arrChar1[] = {‘a’, ‘b’, ‘’, ‘d’, ‘e’}; char arrChar2[] = “hello”; char *p = “hello”; printf(“%dn”, sizeof(arrChar1)); // 5 返回数组大小 printf(“%dn”, strlen(arrChar1)); // 2 提前遇到了字符串结束符’’ printf(“%dn”, sizeof(arrChar2)); // 6 数组长度加1 printf(“%dn”, strlen(arrChar2)); // 5 printf(“%dn”, sizeof(p)); // 4 结果指的是指针大小 printf(“%dn”, strlen(p)); // 5 }
原文链接:字符数组、字符指针、字符串,转载请注明来源!
–EOF–