C语言字符串相关知识点
1.strcpy(str1,str2);
Str1的空间应该不小于str2的空间;
如果不能满足,在函数进行中可能发生越界,而导致程序崩溃;
2.char ar[] = “51 grammering club.”
上述定义的字符串,使用函数size of(ar)所测试的是字符串ar所占空间大小,使用函数strlen(ar)测试的是字符串ar的实际字符串长度;
由于这个差异导致了,size of(ar)所得结果是20,而size of(ar)所得结果是19;
字符串结尾有‘\0’占用一个字节空间;
3.区别初始化和赋值;
初始化和赋值是有很大区别的,效果是不同的,我们先不追究其中内在原理;
就字符串而言,初始化后在字符串末尾自加’\0’,而初始化则不会这样做;
4.变量申请空间及作用区间
Stack 局部栈空间 |
Heap 堆空间 |
Static 静态存储空间 |
如上图所示,不同变量所申请空间区域不同,从而在程序运行中,变量的作用区间不同,系统清空不同内存空间的条件不同,从而有不同的变量申请。
5.字符串中存在‘\0’,或者存在‘\***(数字)’的解释;
例:char [] = “abcd\0ef”
字符串中‘\0’被解释为数字0,字符串遇数字零则止;
Char [] = “abcd0ef”中的0是字符零;
存在‘\***(数字)’的情况,\后最多解释三位八进制,在三位内遇到除八进制的数,则只解释前八进制的数;
Char [] = “abcd\569ef”,\后只解释56,56八进制转化为十进制是46,而\56解释为ASC码为46代表字符;
重点是区别字符零和数字0;