指標與字串

2021-08-07 22:40:34 字數 1764 閱讀 1732

一、字串的表示形式

在 c++中,我們可以用兩種方式訪問字串。

(1)用字元陣列存放乙個字串,然後輸出該字串。

int main()

(2)用

字元指標指向乙個字串。

可以不定義字元陣列,而定義乙個字元指標。用字元指標指向字串中的字元。

int main()

在這裡,我們沒有定義字元陣列,而是在程式中定義了

乙個字元指標變數 str,用字串常量"i love china!",對它進行

初始化。c++對字串常量是按字元陣列處理的,在記憶體中開闢了乙個字元陣列用來才存放該字串常量。對字元指標變數初始化,實際上是把字串

第 1 個元素的位址(即存放字串的字元陣列的首元素位址)賦給 str。有人認為 str 是乙個字串變數,以為在定義時把"i love china!"這幾個字元賦給該字串變數,這是不對的。

char *str="i love china! ";
等價於

char *str;//定義乙個指標變數 

str="i love china! ";//把i的位址賦值給指標變數str

//指標變數只能存放位址

可以看到,str 被定義為乙個指標變數,指向字元型資料,請注意它只是指向了

乙個字元變數或其他字元型別資料,不能同時指向多個字元資料,更不是把"i love china!"這些字元存放到 str 中

(指標變數只能存放位址)。只是把"i love china!"的第乙個字元的位址賦給指標變數 str。

輸出時,使用:

printf("%s\n",str);
其中「%s」是輸出字串時所用的格式符,在輸出項中給出字元指標變數名,則系統先輸出它所指向的乙個字元資料,然後

自動是 str 加 1,使之指向下乙個字元,然後再輸出乙個字元……如此知道遇到字串結束標誌「\0」為止。

注意:可以通過字元陣列名或者字元指標變數輸出乙個字串。而對乙個數值型陣列,是不能企圖用陣列名輸出它的全部元素的。

例如:int i[10];

printf(」%d\n」, i);

這樣是不行的,只能逐個輸出。顯然 %s 可以對乙個字串進行整體的輸入和輸出。

二、字串指標作函式引數

將乙個字串從乙個函式傳遞到另外乙個函式,可以用位址傳遞的方法,即用字元陣列名作引數或用指向字元的指標變數做引數。在被呼叫的函式中可以改變字串內容,在主調函式中可以得到改變了的字串。

【例 8】輸入乙個長度最大為 100 的字串,以字元陣列的方式儲存,再將字串倒序儲存,輸出倒序儲存後的字串。(這裡以字元指標為函式引數)

字元指標與字串

例項1 include using namespace std int main 執行結果 error 例項2 include using namespace std int main 執行結果 helloworld例項3 include using namespace std int main 執...

字串與指標

字元 0 和 0 的區別字元 0 對應的ascii碼為十六進製制30 而 0 即為ascii碼中的0,其對應字元空字元nul。char c 0 char c 0 nul char c 0 char c 48 最典型如memset函式 void memset void buffer,int ch,si...

字串與指標

printf的第二個引數的型別是由 第乙個引數format決定的。當format為 s時,第二個引數就是乙個位址,printf將位址上的值輸出到stdout。當format為 d時,第二個引數就是乙個int型的變數,printf將變數上值輸出到stdout。1 字串的表示形式 在c語言中,我們可以用...