C语言字符串相关知识点

来源:互联网 发布:javaweb高级编程 源码 编辑:程序博客网 时间:2024/06/09 17:31

C语言字符串相关知识点

1.strcpystr1,str2;

  Str1的空间应该不小于str2的空间;

  如果不能满足,在函数进行中可能发生越界,而导致程序崩溃;

2.char  ar[] = “51  grammering  club.”

  上述定义的字符串,使用函数size ofar)所测试的是字符串ar所占空间大小,使用函数strlenar)测试的是字符串ar的实际字符串长度;

   由于这个差异导致了,size ofar)所得结果是20,而size ofar)所得结果是19

字符串结尾有\0’占用一个字节空间;

3.区别初始化和赋值;

  初始化和赋值是有很大区别的,效果是不同的,我们先不追究其中内在原理;

  就字符串而言,初始化后在字符串末尾自加’\0’,而初始化则不会这样做;

4.变量申请空间及作用区间

              Stack  局部栈空间

              Heap  堆空间

              Static  静态存储空间

如上图所示,不同变量所申请空间区域不同,从而在程序运行中,变量的作用区间不同,系统清空不同内存空间的条件不同,从而有不同的变量申请。

5.字符串中存在\0’,或者存在‘\***(数字)’的解释;

  例:char [] = “abcd\0ef”

字符串中\0被解释为数字0,字符串遇数字零则止;

Char [] = “abcd0ef”中的0是字符零;

存在\***(数字)’的情况,\后最多解释三位八进制,在三位内遇到除八进制的数,则只解释前八进制的数;

Char [] = “abcd\569ef”,\后只解释5656八进制转化为十进制是46,而\56解释为ASC码为46代表字符;

重点是区别字符零和数字0

0 0
原创粉丝点击