C語言字串的指標

2021-06-17 19:17:40 字數 1211 閱讀 8156

在c語言中沒有字串變數,只要字串常量,採用字串指標可以對字串常量進行操作,即用字元指標指向字串常量,然後通過字元指標來訪問字串的儲存區域。

1、  字串的表示形式

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

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

main()

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

main(){

char *string="i am a boy!";

printf("%s\n",string);

在這裡,我們沒有定義字元陣列,而是在程式中定義了乙個字元指標變數string,用字串常量"i am a boy!",對它進行初始化。c語言對字串常量是按字元陣列處理的,在記憶體中開闢了乙個字元陣列用來才存放該字串常量。對字元指標變數初始化,實際上是把字串第1個元素的位址(即存放字串的字元陣列的首元素位址)賦給string。有人認為string是乙個字串變數,以為在定義時把"i am a boy!"這幾個字元賦給該字串變數,這是不對的!!

實際上,char *string="i am a boy!";等價於:

char  *string;

string = 「i am a boy!」;

可以看到,string被定義為乙個指標變數,指向字元型資料,請注意它只是指向了乙個字元變數或其他字元型別資料,不能同時指向多個字元資料,更不是把「i am a boy!」這些字元存放到string中(指標變數只能存放位址),也不是把字串賦給*string。只是把「i am a boy!」的第乙個字元的位址賦給指標變數string

在輸出時,要用:printf(「%s\n」, string);,其中「%s」是輸出字串時所用的格式符,在輸出項中給出字元指標變數名,則系統先輸出它所指向的乙個字元資料,然後自動是string加1,使之指向下乙個字元,然後再輸出乙個字元……如此知道遇到字串結束標誌「\0」為止

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

int i[10];

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

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

C語言 字串指標(指向字串的指標)

字串一旦被建立就存在於常量池中。以字元陣列形式建立的字串,實際上是從字串常量池中複製了乙個副本,所以修改字元陣列的內容時,只是修改的自己的副本,並不會影響到常量池中的字串。而對字串指標strp操作時會影響到常量池中的字串 char strc string char strp string print...

C語言 字串 指標

字串 1.字串 jack j a c k 0 用陣列儲存字串 char name 10 jack printf name 2.字串的一些定義 都是字串 0的ascii碼值是0 char name 8 it char name2 8 char name3 8 0的ask碼是0 char name4 8...

C語言指標 字串和指標

字元指標可以指向字元變數,但在實際應用中,我們常常會用到字串,而字串也是可以用字元指標指向的,但根據字串的不同儲存方式主要分為字串常量和利用字元陣列儲存的字串變數,兩者有不同的定義和使用形式 字元指標可以用來儲存字串常量的首位址 例如 char ptr my name is 此時,字串常量在記憶體中...