1.一維數組
1.1 一維數組的定義
類型說明符 數組名[常量表達式];// int a[10];
注:常量表達式中可以包括常量和符號常量,也就是說,C語言不允許對數組的大小做動態的定義,即數組的大小不依賴於程序運行過程中變量的值;
如下是不允許的:
int n;
scanf("%d",&n);
int a[n];/* 在程序中臨時輸入數組的大小 */
1.2 一維數組元素的引用
數組必須先定義,再使用。
表現形式爲:數組名[小標]
1.3 一維數組的初始化
對數組的元素的初始化可以用一下方法實現:
a.在定義數組時對數組元素賦予初值,列如:
int a[5] = {0,1,2,3,4};
b.可以只給一部分元素賦值,其餘元素值爲0;
c.如果想使一個數組中元素值爲0,可以寫成:
int a[5] = {0,0,0,0,0};
or
int a[10] = {0};
2.二維數組的定義和引用
2.1 二維數組的定義
二維數組定義的一般形式爲:
類型說明符 數組名[常量表達式][常量表達式];
C語言中,二維數組中元素排列的順序是按行存放的,即在內存中先順序存放第一行的元素,再存放第二行的元素。
例如:
a[0][0] -> a[0][1] ->a[0][2] -> a[1][0] -> a[1][1] ->a[1][2].......
2.2 二維數組的初始化
可以用以下的方法對二維數組初始化:
a.分行給二維數組賦初值:
int a[3][4] = {{1,2,3,4},{5,6,7,8},{9,10,11,12}};
b.可以將所有的數據寫在一個花括號內:
int a[3][4] = {1,2,3,4,5,6,7,8,9,10,11,12};
c.可以對部分元素賦初值:
int a[3][4] = {{1},{5}};//其餘爲0
3.字符數組
用來存放字符數據的數組是字符數組。字符數組中的一個元素存放一個字符。
3.1 字符數組的定義
由於字符型與整型是互通的。
3.2 字符數組的初始化
對字符數組初始化,最容易理解的方式是逐個字符賦給數組中各元素。
char c[10] = {'I',' ','a','m','h','a','p','p','y'};
如果在定義字符數組時不進行初始化,則數組中各元素的值是不可預料的。
4.字符串處理函數
4.1 puts函數
其一般形式:puts(字符數組)
其作用是將一個字符串(以'\0'結束的字符序列)輸出到終端。相當於printf。
4.2 gets函數
其一般形式:gets(字符數組);
其作用是從終端輸入一個字符串到字符數組,並且得到一個函數值。該函數值是字符數組的起始地址。
注意:用puts和gets只能輸出或輸入一個字符串。
4.3 strcat函數
其一般形式:strcat(src,dst);
其作用是連接2個字符數組中的字符串,把dst接到src的後面,結果放在src中。
說明:
a.字符數組src必須足夠大,以便容納連接後的新字符串。
b.連接前兩個字符串的後面都有'\0',連接時將字符串src後面的'\0'取消,只在新串最後保留'\0'。
4.4 strcpy和strncpy函數
其一般形式:strcpy(dst,src);//strncpy(dst,src,len);
其作用是將字符串src複製到dst中。
4.4 strcmp函數
其一般形式:strcmp(src1,src2);
其作用是比較字符串src1和字符串src2。
字符串比較規則:對兩個字符串自左向右逐個字符相比(按ASCII碼值大小比較),直到出現不同的字符或遇到'\0'爲止。如全部字符相同,則認爲相等;若出現不同,則以第一個不相同的字符的比較結果爲準。
4.5 strlen函數
其一般形式:strlen(str);
其作用是字符串長度的函數。函數的值爲字符串中的實際長度(不包括'\0');
4.6 strlwr函數
其一般形式:strlwr(str);
函數的作用是將字符串中大寫字母換成小寫字母。
4.7 strupr函數
其一般形式:strupr(str);
函數的作用是將字符串中小寫字母換成大寫字母。