該例子說明幾個問題
1. 為什麼需要數組。 (1) 為了解決大量同類型數據的存儲和使用問題。 (2) 為了模擬現實世界。 2. 數組的分類 (1) 一維數組 ① 怎樣定義一維數組: 為n個變量連續分配存儲空間。 所有元素的數據類型必須相同。 所有元素所占的字節大小必須相等。 ② 有關一維數組的操作: <1> 初始化 完全初始化: int a[5] = {1, 2, 3, 4, 5}; 不完全初始化:int a[5] = {1, 2, 3}; // 未被初始化的元素值自動為0。 不初始化: int a[5]; // 所有元素為垃圾值。 <2> 清零: int a[5] = {0}; <3> 錯誤寫法: int a[5]; a[5] = {1, 2, 3, 4, 5}; // error 只有在定義數組的同時,才可以整體賦值,其它情況下整體賦值都是錯誤的。 int a[5] = {1, 2, 3, 4, 5}; a[5] = 100; // error 沒有a[5]這個元素,最大只有a[4] int a[5] = {1, 2, 3, 4, 5}; int b[5]; 如果要把a數組中的元素全部復制到b數組 錯誤寫法: b = a; // error 數組名代表數組中第一個元素a[0]的地址。 正確寫法: for (i = 0; i < 5; i++) b[i] = a[i]; <4> 賦值 <5> 排序 <6> 求最大/最小值 <7> 倒置 <8> 查找 <9> 插入 <10> 刪除 (2) 二維數組 ① int a[3][4]; 總共是12個元素,可以當做3行4列看待,這12個元素的名字依次是 a[0][0] a[0][1] a[0][2] a[0][3] a[1][0] a[1][1] a[1][2] a[1][3] a[2][0] a[2][1] a[2][2] a[2][3] a[i][j]表示第i+1行,第j+1列的元素。 int a[m][n]; 該二維數組右下角位置的元素只能是a[m-1][n-1]。 ② 初始化: int a[3][4] = {1,2,3,4,5,6,7,8,9,10,11,12}; int a[3][4] = { {1, 2, 3, 4 }, {5, 6, 7, 8 }, {9, 10, 11, 12} }; ③ 輸出二維數組內容: ④ 對二維數組排序 ⑤ 求每一行的最大值 ⑥ 判斷矩陣是否對稱 ⑦ 矩陣的相乘 (3) 多維數組 ① 是否存在多維數組:不存在,因為內存是線性一維的。 ② n維數組可以當做每個元素是n-1維數組的一維數組。 例如: int a[3][4]; 該數組是含有3個元素的一維數組,只不過每個元素都可以再分成4個小元素。 int a[3][4][5]; 該數組是含有3個元素的一維數組,只不過每個元素是4行5列的二維數組。 原文:C語言大綱-郝斌#include <stdio.h>/******************************************************************** 0 0 0 0 0 Press any key to continue
int main(void){/* int i; int a[5] = {0}; for (i = 0; i < 5; i++) printf("%d ", a[i]); printf("\n");*/
// 輸出二維數組內容 int i, j; int a[3][4] = { {1, 2, 3, 4 }, {5, 6, 7, 8 }, {9, 10, 11, 12} }; for (i = 0; i < 3; i++) { for (j = 0; j < 4; j++) { printf("%-5d ", a[i][j]); } printf("\n"); } return 0;}