C語言回顧 指標與字串

2021-10-03 06:35:34 字數 2289 閱讀 9364

大家都知道在c語言中是沒有字串這個資料型別的,那我們如何來處理字串呢?事實上我們是把字串當成字元陣列來處理。

字串的實質是:字元陣列+』\0』,用反斜槓0來表示字串的結尾。

那當字串作為陣列的元素,我們如何操作呢?

char[5

]="hello"

;//字元陣列

那麼如果我們要表示:,該用什麼資料型別呢?

【指標陣列】

指標陣列是指陣列元素為指標陣列

指標陣列是由二維陣列演化而來

int a[2]

[3]=

我們都知道二維陣列可以看成是元素是陣列的一維陣列,也就是可以把上面改為:int a[2][3]=,},每一行用括號括起來。換句話說,可以表示為int a[2]=;

元素是陣列的陣列

這裡的a1[3]=a2[3]=,既然如此,我們便可以宣告兩個指標p1,p2,由於陣列名是首位址,即int *p1=a1int *p2=a2,所以我們可以得到int *a[2]=;

元素是指標的陣列

【字串是一種特殊的陣列】

char str=

"hello"

;

字串=字串+『\0』

字串的名稱就是字串的首位址

我們宣告三個字串:

char str1[10]

="hello"

;char str2[10]

="welcome"

;char str3[10]

="string"

;

我們再宣告三個指標,分別指向三個字串

char

*p1= str1;

char

*p2= str2;

char

*p3= str3;

我們把三個指標放到字元陣列裡面

char

*string[3]

=;//因為存放的是指標,所以陣列名前要加星號

將p1,p2,p3用字串首位址代替

char

*string[3]

=

再將字串的值代入陣列

char

*string[3]

=

字串做元素的陣列,這個陣列的型別是字串指標型別,也就是char *型別。

我們來看個例子:

#include

intmain

(void);

int day=0;

printf

("input day(1...7):"

)scanf

("%d"

,&day);if

(day==

7&&day==0)

else

}

字串指標的性質

1.字串可以當作陣列來處理;

2.可以宣告乙個指標p,利用指標偏移量來訪問陣列;

#include

#include

intmain

(void

)return0;

}

字串與字元陣列的聯絡

1.字串被當做字元陣列來處理;

2.字串的首位址是字串名,字元陣列的首位址是陣列名,其性質相同;

字串與字元陣列的區別

1.字串有終止符『\0』,而字元陣列沒有;

2.可以通過指標型別來修改字元陣列的元素,但是不能修改字串中的字元;

C語言 陣列與指標 字元與字串

1 字元與字串 char c a 而不能寫出char c a 字元變數用單引號 而字串用雙引號。2 字元陣列與字元指標的初始化 char s 10 p strcpy s,hello word n 或者p hello word n 而不能用s hello word n y因s陣列名表示陣列的首位址是個...

C語言之字串與指標

1 字串的儲存與訪問 字串的訪問 char str n 第i個字元 str i 思考?以下寫法是否正確?char s1 n s1 welcome s1 welcome 錯誤!必須逐一賦值或使用函式,且陣列長度要足夠大。可以使用字元指標解決 char s s welcome 或 char s welc...

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...