在c語言中,字串是存放在字元陣列中的,字串的引用如下:
charstring ="
i love china!
";//
定義字元陣列string
printf(
"%s\n
",string);//
輸出整個字串
printf(
"%c\n
",string[7]);//
輸出第七個元素
該字串長度是14,最後乙個位元組存放字串結束符'\0'。
例1:通過字元指標變數輸出乙個字串。
1intmain()
2
定義乙個char*變數,即字元型指標變數string,用字串常量"i love china!"初始化,把字串的第乙個元素的位址賦給指標變數string,使string指向字串的第乙個字元。
%s使輸出字串格式符,系統會輸出string指向的第乙個字元,然後自動使string+1,指向下乙個字元,直到'\0'為止。
例2:將字串a複製為字串b,然後輸出字串b。
1intmain()
2
例3:用函式呼叫實現字串的複製。
(1).用字元陣列名作為函式引數。
1intmain()212
void copy(char
from,char to)//
形參為字元陣列
1320 to[i]='\0'
; 21 }
(2).用字元型指標變數作實參。
1intmain()213
void copy(char
from,char to)//
形參為字元陣列
1421 to[i]='\0'
; 22 }
(3).用字元指標變數作形參和實參。
1intmain()213
void copy(char *from,char *to)//
形參為字元指標變數
14
上述的三個程式區別實參和形參的不同,都達到了複製字串的目的,仔細觀察三個程式不同的地方,總結字元指標變數和字元陣列的區別如下:
1.字元陣列中存放的是元素,而字元指標存放的是位址。
2.可以對字元指標變數賦值,但不能對陣列名賦值。
char *a; a="i love china!";//正確的
char string[14]; string="i love china!";//錯誤的
3.初始化含義不同。
char *a="i love china!";//把字串第乙個元素的位址賦給a
char string="i love china!";//把字串賦給陣列中的各個元素
4.指標變數的值是可以改變的,但陣列名代表陣列首元素的位址,是個固定值,不能改變。
字元指標與字串
例項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語言中,我們可以用...