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