7.1 一維陣列的定義和引用
7.1.1 一維陣列的定義方式
一維陣列的定義方式為:型別說明符 陣列名 [常量表示式];
其中:
型別說明符是任一種基本資料型別或構造資料型別。
陣列名是使用者定義的陣列識別符號。
方括號中的常量表示式表示資料元素的個數,也稱為陣列的長度。
例如:int a[10]; 整型陣列a,有10個元素。
float b[10],c[20]; 說明實型陣列b,有10個元素,實型陣列c,有20個元素。
char ch[20]; 說明字元陣列ch,有20個元素。
1) 、陣列的型別實際上是指數組元素的取值型別。對於同乙個陣列,
其所有元素的資料型別都是相同的。
2) 、陣列名的書寫規則應符合識別符號的書寫規定。
3)、 陣列名不能與其它變數名相同。
4) 、方括號中常量表示式表示陣列元素的個數,如a[5]表示陣列a有 5個元素。
但是其下標從0開始計算。因此5個元素分別為a[0],a[1],a[2],a[3],a[4]。
5) 、不能在方括號中用變數來表示元素的個數, 但是可以是符號常數或常量
表示式。
例如:#define fd 5
b[7+fd] 合法
int n=5;
int a[n];
不合法6) 、允許在同乙個型別說明中,說明多個陣列和多個變數。
例如:int a,b,c,d,k1[10],k2[20];
7.1.2 一維陣列元素的引用
陣列元素的一般形式為:陣列名[下標]
其中下標只能為整型常量或整型表示式。
例如: a[5] ,a[i+j], a[i++]
例7.1
#includeint main(void)
例7.2
#includeint main(void)
for(i=9;i>0;i--)
}
7.1.3 一維陣列的初始化
1)、在定義陣列時對陣列元素賦以初值
例如:int a[10] =
3)、如果想使乙個陣列中全部元素值為0,可以寫成int a[10] = ;
4)、在對全部陣列元素賦初值時,可以不指定陣列長度
例如:int a[ ] = ;
7.1.4 一維陣列程式舉例
例7.4
#includeint main(void)
本例程式中第乙個for語句逐個輸入10個數到陣列a中。 然後把a[0]送入max中。
在第二個for語句中,從a[1]到a[9]逐個與max中的內容比較,若比max的值大,
則把該下標變數送入max中,因此max總是在已比較過的下標變數中為最大者。
比較結束,輸出max的值。
例7.5
#includeint main(void)
{ int i,j,p,q,s,a[10];
printf("input 10 numbers:\n");
for(i=0;i<10;i++)
scanf("%d",&a[i]);
for(i=0;i<10;i++)
{ p=i;
q=a[i];
for(j=i+1;j<10;j++)
if(q
本例程式中用了兩個並列的for迴圈語句,在第二個for 語句中又巢狀了乙個迴圈語句。
第乙個for語句用於輸入10個元素的初值。第二個for語句用於排序。本程式的排序採
用逐個比較的方法進行。在i次迴圈時,把第乙個元素的下標i賦於p,而把該下標變數
值a[i]賦於q。然後進入小迴圈,從a[i+1]起到最後乙個元素止逐個與a[i]作比較,有比
a[i]大者則將其下標送p,元素值送q。一次迴圈結束後,p即為最大元素的下標,q則
為該元素值。若此時i≠p,說明p,q值均已不是進入小迴圈之前所賦之值,則交換a[i]和
a[p]之值。 此時a[i]為已排序完畢的元素。輸出該值之後轉入下一次迴圈。對i+1以後
各個元素排序。
C語言程式設計譚浩強版 一
本章的一些概況這裡就不說了,直接進入細節的學習!3.1 c的資料型別 資料型別分為 基本型別 構造型別 指標型別 空型別 基本型別又分為 整型 字元型 實型 浮點型 又分為單精度型 雙精度型 列舉型別 構造型別又分為 陣列型別 結構體型別 共用體型別 3.2 常量和符號常量 在程式執行過程中,其值不...
C語言程式設計譚浩強版 三
3.5 字元型資料 3.5.1 字元常量 字元常量是用單引號括起來的乙個字元。例如 a b 都是合法字元常量。在 語言中,字元常量有以下特點 1 字元常量只能用單引號括起來,不能用雙引號或其它括號。2 字元常量只能是單個字元,不能是字串。3 字元可以是字符集中任意字元。但數字被定義為字元型之後就不能...
C語言程式設計譚浩強版 四
3.6 變數賦初值 語言程式中可有多種方法為變數提供初值。本小節先介紹在作變數定義的同時給變數賦以 初值的方法。這種方法稱為初始化。變數初始化不是在編譯階段完成的,而是在程式執行 時執行本函式時賦予初值的。在變數定義中賦初值的一般形式為 型別說明符變數1 值1,變數2 值2,例如 int a 3 i...