20 March 2013
  • 字符数组,就是元素是字符的数组。
  • 字符串(C-Sytle String),是字符变量的数组,以’’结尾。可见,字符串是特殊的字符数组。
  • 字符指针,即char *a。

  • 字符串操作函数strlenstrcpystrlen定义在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