// 内容:(一维二维)数组 /* 1.数组长度:整数,常量表达式,自动获取长度 ---但是不可以用小数 ---也不可以是变量,数组在定义时系统会根据数组类型和大小为其分配内存空间 ---对于这种情况的初始化操作,可以省略不写数组长度,它会自动识别:int c[] = {30, 31, 32, 33}; 2.数组内存是连续的 */ int main() { int a[5] = {1,2,3}; // 数组的初始化,左边代码只初始化了3个,剩下的2个使用默认值0 int b[4]; // 由“数组名[下标]”组成,下标从零开始 b[0] = 10; b[1] = 20; b[2] = 30; b[3] = 40; int num[100]; // 遍历赋值 for (int i = 0; i < 100; i++) { num[i] = i; } // 遍历读取 for (int i = 0; i < 100; i++) { if (i % 10 == 0) // 每10个数就换一次行 printf("\n"); printf("%-3d", num[i]); // 左对齐,共3位,“数据的位”不足就用空格补位 } return 0; } /* 二维数组的定义形式: 类型 数组名[行数][列数]; char a[5][3]; 二维数组的初始化 按行初始化 int arr[2][3] = { {0, 1}, // 初始化过程中,遇到没有值的,就默认为0(下面同理) {10, 11, 12} }; 顺序初始化 int arr[2][3] = {0, 1, 2, 10, 11, 12}; int arr[][3] = { // 行可以省略,列不能省略!! {0, 1}, {10, 11, 12} }; ____________________________________________________________________________ 假如你省略行数,但是确定了列数, 计算机会根据你的列数的数值以及你初始化时给的数据,自动确定行数, 因此行数可以省略。 但是如果给了行数但没有确定列数, 对于你初始化的数据,计算机不知道怎么划分,是平均分呢?还是其他方式分呢? 这是没有规定的,这样子会出现错误。 ____________________________________________________________________________ 1、可以同时指定第一维和第二维的长度 2、可以只指定第二维的长度 3、不可以只指定第一维的长度 4、不可以第一维和第二维的长度都不指定 综上所述,至少指定第二维的长度 ____________________________________________________________________________ */