字串和字串函式
阿新 • • 發佈:2021-12-05
1.字串字面量(字串常量):用雙引號括起來的內容稱為字串字面量,也叫字串常量。
字串常量屬於靜態儲存類別,這說明如果在函式中使用字串常量,該字串只會被儲存一次,在整個程式的生命期記憶體在,計時函式被呼叫多次。
用雙引號括起來的內容被視為指向該字串儲存位置的指標。*“hello”中的“hello”類似於一個數組名,表示首元素的地址。
2.字串陣列和初始化
在定義一個字串時,注意最後要用空字元,如果沒有空字元,就不是一個字串,而是一個數組。但計算一個字串的長度時,並不包含這個空字元。
字串以陣列的形式存在,以陣列或指標的形式訪問,更多的是以指標的形式訪問。
字元陣列名和其他陣列名一樣,是該陣列首元素的地址。可以用下列方式建立字串:
指標表示法: char *pr="hello" ;
陣列表示法: char pr[ ]="hello" ;
那char*是不是字串?不一定,只有當他所指的字元陣列結尾有空字元時,它才是字串。
3.陣列和指標的區別
char a[ ]="hello";
const char *b="hello";
兩者的主要區別是:陣列名a是常量,而指標名b是變數。
因此不能改變a的值,可以進行a+1的操作(指向下一個元素的地址),但不能進行a++;的操作。
但b可以如++b,表示指向第二個字元。
字串字面量被視為const資料,這意味著b不能改變它所指向的資料,但仍然可以改變b的值。