char指針


1、在C語言中,沒有字符串類型,因此使用char指針表示字符串。

2、那么問題來了,使用char* 表示字符串,到哪里是結尾呢?因此需要一個特殊的字符作為哨兵,類似迭代器中的end(),這個哨兵就是'\0',注意不是字符0.

3、對於文本字符串,編譯器會自動添加\0。

4、對於字符數組的賦值,如果不使用文本字符串,需要用戶在尾部添加字符\0。對於其他類型的數組,沒有\0的概念。

5、對於char指針,C語言提供了一系列方法,如strlen,strcmp。這些方法有個特點,都是假定最后一個字符為\0。因此對於char指針,我們要保證最后一個字符是\0。

6、考慮sizeof,對於指針,取值為4。對於數組名,雖然數組名也可以認為是指針,但是sizeof(數組名) 取值是整個數組占用的內存,而不是4。思考為什么?

  int a[] = {1,3,5,7,}; 我怎么知道a中的元素個數。總不能讓我數吧?

  我知道每個int占用內存,要想知道元素個數,我需要知道整個數組占用的內存。因此,我需要sizeof(a)返回整個數組占用的內存大小。

7、char指針指向文本字符串,可以認為char指針是指向const對象的指針;char數組名,可以認為是常量指針,不允許修改指向。

8、sizeof(char數組名) :返回整個數組占用多少個字節,包括\0。

  sizeof(char指針):返回4

9、strlen(char數組名) :字符元素個數,直到\0,不包括\0

  strlen(char指針):字符元素個數,直到\0,不包括\0


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM