定義指標字元

2021-10-02 04:27:41 字數 575 閱讀 9730

字串常量是用一對雙引號括起來的字串行,與基本型別常量的儲存類似。字串常量是一串字元,通常被看作乙個特殊的一維陣列,與陣列的儲存類似,字串常量中的所有字元在記憶體中連續存放。所以,系統在儲存乙個字串常量是先給定乙個起始位址,從該位址指定的儲存單元開始,連續存放給字串中的字元。也就是說,字串常量實質上是乙個指向該字串首字元的指標常量。

如果定義乙個字元指標接收字串常量的值,,該指標就指向字串的首字元。

那麼如何定義指標字元呢?

指標要先賦值後引用,因為指標中存放的是位址,沒有對它賦值,它就不知道指向誰,所以輸入的字元也就不知道存放在**,因此在輸入字元之後字元所存放的空間實際上是不知道的,如果它輸入的空間中已經有其他資料了,那麼這些資料就會被新輸進來的資料覆蓋,所以會導致出錯。

char

*s;scanf

("%s"

,s);

//沒有賦值便直接引用

char

*s,str[20]

;s=str;

scanf

("%s"

,s);

//先賦值後引用

陣列指標,字串指標的幾種定義方法

一 陣列指標的定義方法 1.int a 10 int p p a 0 等價於p a 2.int a 10 int p a 定義指標時直接賦值 二 輸入字串的方法 1.直接把字串輸入到字元陣列 char str i love china printf s n str puts str 2.定義乙個指向...

關於字串陣列,指標定義陣列

今天測了乙個程式,發現了一些不懂的問題,下面貼上 和自己的一些想法。1.用指標指向乙個字串,並嘗試修改字串。char p hello p 2 c printf the word is s n p 編譯沒有問題,但是執行沒有任何的輸出。我們都知道p指向 hello 的首字母 h 的位址,但printf...

函式裡定義的字串常量與字元指標

問題 char getstring void void test4 void char p hello world 這句helloworld 常量在靜態區,會隨著函式結束消失嗎?解答 在windows環境下 hello world 在程式結束前不會消失 聯結器在連線.exe檔案時,將 hello w...