C語言總結 陣列

2021-09-13 21:23:08 字數 3020 閱讀 1582

c 語言總結:陣列

2019-3-27

1. 一維陣列

1.1 一維陣列的定義

int a[10]

;

1.2 一維陣列的初始化

//以下**均為定義並初始化乙個長度為5的整數陣列;

int a[5]

=;int a[5]

=;// a = ;

int a[5]

=;// a = ;

int a=

;//預設a的長度為5;

2. 二維陣列

2.1 二維陣列的定義

int a[3]

[4];

二維陣列就是一維陣列的一維陣列;上面的陣列a包含三行,即三個元素,分別為a[0], a[1], a[2]。而每個元素又是乙個一維陣列,均包含四個元素。

2.2 二維陣列的初始化

//以下**均為定義並初始化乙個3*4的二維整數陣列;

int a[3]

[4]=

,,;int a[3]

[4]=

;int a[

4]=;

//在可確定維度時,可省第乙個長度,但第二個長度不可省;

int a[3]

[4]=

,,;int a[3]

[4]=

,,};

int a[3]

[4]=

,};//省略第三行的初始化;、

int a[

4]=,

,};

3. 字元陣列

3.1 字元陣列的定義

char str[10]

;

3.2 字元陣列的初始化

字元陣列如果在定義時未初始化,則系統自動初始化的內容是不確定的。

由於字元陣列的實際字串長度往往小於定義的陣列長度,系統為了便於知道字元陣列在何處結束,會在使用者定義的字串後自動加乙個結束符』\0』作為標記(如果字元陣列長度允許的話),在輸出字串時,只要遇到字元』\0』就會停止輸出,認為該字串已結束。但是如果字串內容剛好已打字元陣列長度,則不會再添』\0』,比如下面**中的第乙個示例。

char str[5]

=;//str佔5個位元組;

char str=

;//str實際為"china\0",佔6個位元組;

char str=

"china"

;//str實際為"china\0",佔6個位元組;

char str[5]

=;//初始化為全'\0', str = ;

char str[5]

;gets

(str)

;//從終端輸入字串

scanf

("%s"

, str)

;//字元陣列只能在定義時整體賦值,不可以先定義,後整體賦值,下面的**是錯誤的;

char str[5]

;str =

"china"

;//編譯不通過;

3.3 字串

c語言中,字串作為字元陣列來處理,為了標誌字串的有效長度,系統會自動在有效的字串之後加乙個』\0』字元作為結束標誌。對於字串常量,系統也會自動在最後加乙個』\0』字元,所以字串在記憶體中的長度要多乙個位元組。在程式中,系統也通常通過』\0』字元來判斷字串是否結束,只要遇到乙個』\0』,就認為該字串到此結束了,並只計算』\0』之前的字元長度作為字串的有效長度。

說明:字元陣列並不強制要求它的最後乙個字元一定為』\0』,而是根據實際情況而定。如一下的表示都是合法的:

char c[5]

=;//c中沒有'\0'

char c[6]

=;

『\0』是字串結束的標誌,所以使用時為了對字串處理方便,最好都加上』\0』。

3.4 字串處理函式

c函式庫提供的常用字串處理函式。

char a=

"hello"

;char b[20]

;puts

(b);

//終端輸入:"world"

gets

(a);

//終端輸出:"hello"

strcat

(b, a)

;//連線b,a,將結果放入b中,返回陣列b的位址;

strcpy

(b, a)

;//將a的字串複製到b中;

strncpy

(b, a,2)

;//將a的前2個字元代替b中前2個字元,但需要b的有效字元長度不小於2;

strcmp

(a, b)

;//若a == b,返回0; 若a > b,返回正整數;若a < b, 返回負整數;

strlen

(a);

//返回字串a的有效長度;

strlwr

(a);

//將a中大寫字母換成小寫字母;

strupr

(a);

//將a中小寫字母換成大寫字母;

4. 陣列作為函式引數

4.1 陣列元素作函式引數

與變數做引數一樣,都是單向傳遞,即「值傳遞」方式。

4.2 陣列名作函式引數

void

fun(

int a)

;void

fun(

int a[10]

);//二者等價

void

fun(

int* a)

;

void

fun(

int array[3]

[4])

;void

fun(

int array[

4]);

多為陣列名作為實參,第一維大小可以與形引數組不同,但更高維需一樣。

C語言陣列總結

陣列 定義 陣列是有序的並且具有相同型別的資料的集合。一維陣列 1 一般形式 型別說明符 陣列名 常量表示式 例如 int a 10 元素為a 0 a 9 2 常量表示式中不允許包含變數,可以包含常量或符號常量。3 陣列元素下標可以是任何整型常量 整型變數或任何整型表示式。4 可以對陣列元素賦值,陣...

C語言陣列排序總結

1 冒泡法 冒泡法大家都較熟悉。其原理為從a 0 開始,依次將其和後面的元素比較,若a 0 a i 則交換它們,一直比較到a n 同理對a 1 a 2 a n 1 處理,即完成排序。下面列出其 void bubble int a,int n 定義兩個引數 陣列首位址與陣列大小 冒泡法原理簡單,但其缺...

C 語言陣列自我總結

經過乙個假期後,基本上來說c語言的知識忘的差不多了,今天大概又翻看了下,進行了一點總結吧,也為了日後方便學習。下面我會就常見的兩種定義進行說明,其實也就是運算子的優先順序問題。char line 100 上面的定義表示的是最多有100個元素的一維陣列,陣列中的元素是字串指標型別 char p cha...