1﹑一般變數與陣列、指標變數的差異
一般的變數僅能儲存單筆的資料,而陣列與指標透過記憶體配置的方式,可以儲
存較大量的資料。陣列與指標變數儲存的是記憶體的位址,若要存取資料時,要透過
特別的方式才能存取到資料本身。此外,陣列與指標變數,必需在配置足夠的記憶體
空間後,才可以用來儲存資料。
2﹑陣列與指標的差異
2.1陣列空間大小於宣告時即決定且不能再更改,而指標之大小可動態改變。
2.2陣列可方便利用索引(index)的方式存取其中某筆資料。
2.3指標在儲存資料前,需先手動配置(malloc)記憶體空間。而陣列則在宣告時即
由系統自動配置。
3﹑陣列的宣告
syntax: 陣列名稱[陣列大小]={初始值1,初始值2,...}
//初始值可不設定
eg. int no1[4],no2[]={1,2,3,4};
char name[6]="Avatar"; //字元陣列可用""設定其初始值
|
4﹑陣列的存取
4.1存取陣列中索引值為n的資料(索引值從0開始,假設共有N筆資料,0 <= n < N)
syntax: 陣列名稱[索引]={初始值1,初始值2,...}
eg.
int no1[4]={1,2,3,4},no2[5];
//印出 no1[] 中最後一筆數字4
printf("The last no1 is %d",no1[3]);
//讀入5筆數字到 no2 陣列
for(int i=0;i<5;i++)
scanf("%d",&no2[i]);
|
4.2存取整個陣列(指向陣列的起始位址)
syntax: 陣列名稱
eg.
char myname[20]="Jonny",yourname[20];
printf("Please input your name:");
//利用 scanf 讀入資料到字元陣列中,注意 yourname 前不加 &
scanf("%s",yourname);
printf("Hello!%s,I am %s.",yourname,myname);
|
5﹑二維陣列與 N 維陣列
eg.
int matrix[5][5] //可儲存5x5的矩陣或行列式
|
6﹑想想看
6.1 輸出一個字串的逆字串(reverse-string),eg. egg=>gge, apple=>elppa(hint:用strlen()可得字串的長度)
6.2 判斷字串是否為迴文(palindrome),eg. esssse,eye,racecar
6.3 宣告變數score,儲存某次段考某班50位學生的國、英、數、物理、化學等五科之學期成績及加權平均。
6.4 計算兩矩(方)陣m1,m2相乘及相加的結果.
6.5 給你十筆身高,請你計算出其平均數,眾數及標準差.(範例資料:170,175,176,176,177,180,160,165,170,186)