C 陣列 字串 指標之間聯絡詳解

2021-10-12 12:09:53 字數 2159 閱讀 6256

1、定義

儲存多個同型別的值。

int a[5];——是int陣列,而不是陣列

5——整型常數、const值(變數)、常量表示式

const

int n =5;

char a[n]=;

cout << a;

2、初始化

定義陣列時,才能初始化。

兩種方式:

列表{} ,對於字串可以不用{}

下標賦值

//列表

int a[10]

=;//字元

char a=

"asd asd"

;//下標賦值

int a[5]

=4;

特殊情況

int a[10]

=;//剩餘預設初始化為0

int b[5]

=;//全零的陣列

3、注意

編譯器不會檢查下標是否有效,有問題不會報錯

4、 陣列分類

字元型陣列——char陣列

//以字元的形式初始化——陣列

char str[10]

=;//12

//以字串的形式初始化——不僅是陣列,更是字串

char str_array[10]

=;//jiang,可以不加{}

非字元型陣列——int、double陣列等

1

int a[10]

=;2 cout << a

1、定義

記憶體的連續位元組中的字元。

(連續位元組就可以, 不用在位元組裡面也要是連續的)

a、字元——【(字母、數字、標點和空白字元)】

b、字串中的空格算乙個字元。

空白字元:空格、(tab)和回車(enter)。

2、c++處理字串的方式

char陣列(其他的非字元型陣列不行)

string類

1、聯絡

記憶體中連續位元組的字元,意味著可以,以char陣列的形式儲存

【非字元型陣列(int型別)無法儲存,因為不是字串】

非字元型陣列——不加引號

是陣列,但不是字串

int a[10]

=;

字元型陣列——單引號或者雙引號

char str[10]

=;//12——char陣列但不是字串

char str_2[10]

=;//12——字串

char str_3[10]

=;//字串常量

char a=

"asd asd"

;//字串常量另一種表達形式

2、char陣列處理字串的兩種形式

//沒有'\0',就僅僅是char陣列

char a[10]

=;//字串

//主流表示法,自動補充\0

char b[10]

=;//字串常量(和上面不一樣)

char c[10]

="ab"

;//字串常量

每個字串在記憶體中都占用一段連續的儲存空間,並有唯一確定的首位址。

(記憶體中連續位元組的字元,並且有唯一的首位址)

1、字元指標

將字串的首位址賦值給字元指標,可讓字元指標指向乙個字串

char

*ptr =

"hello"

;

陣列的變數名就是陣列的首位址

p =

&p[0]p[

0]=*p

指標 陣列 字串 結構體之間的聯絡

1 指標操作變數 int p 定義乙個整形指標 p代表的是位址,p代表的是位址指向的值 int a 10 p a 將a的位址賦值給p指標 pa 20 通過指標改變變數a的值 a 20 也可以通過變數改變 p的值 2 指標運算元組 int i,b 30,a 0 i int p a 陣列名代表陣列的首位...

指標和字串之間的聯絡

c語言中沒有string基本資料型別 c語言裡有這個標頭檔案,所以就想當然的認為c語言裡有string這個型別,通過下面這種形式來宣告string的變數string astring 編譯失敗。原來c語言裡壓根就沒有string這個型別,所以字串都是通過char陣列來儲存的,而這個標頭檔案裡宣告的函式...

指標和字串之間的聯絡

紅塵 網 wap.zuxs.net c語言中沒有string基本資料型別 c語言裡有這個標頭檔案,所以就想當然的認為c語言裡有string這個型別,通過下面這種形式來宣告string的變數string astring 編譯失敗。原來c語言裡壓根就沒有string這個型別,所以字串都是通過char陣列...