字符串簡單理解

一、字符串:

 1、C語言中字符串是以 /0 結尾的;

 2、C語言中沒有字符串類型,用字符數組來模擬字符串;

 3、字符串分配內存 可以是 棧區、堆區、或者全局區;


二、字符數組的初始化:

 1、固定長度

       例如:char buf[4 ] = {'a','b','c','d'};     //結尾沒有‘/0’   不是C風格

 2、不固定長度:

       例如:char buf[ ] =  {'a','b','c','d'};     //結尾沒有‘/0’   不是C風格

 3、字面值對字符數組初始化:

       例如: char buf [ ] = "abcd";           //字符數組內自動補齊 ‘/0’


三、計算字符串 和 字符數組 長度的方法:

 1、計算字符串:用strlen();函數,包含頭文件string.h;不將 ‘/0’ 計算在內;

 2、計算字符數組: 用sizeof()關鍵字,將字符數組末尾的‘/0’計算在內。


四、在使用字符串時候應注意的問題:

 1、初始化字符數組的時候 char buf [ ] = "abcd";的方式時,“abcd”是字面值,在內存中被分配在常量區,不可更改。

 2、字符數組 char buf[ ] = "abcd"; 中數組名buf是字符串的首元素地址,不可賦值更改。原因是編譯器爲確保棧區分配給字符數組buf的內存空間在釋放時候得到完全釋放。

 3、對字符串進行操作多引進指針變量,char* p = “abcd”;p所指向的是字符串”abcd”的首地址(就是指向a),p+1 則指向b,以此類推;這時候p可以改變,而*p不可改變。原因就是第1條,”abcd“在常量區,而p在棧區。












發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章