c语言课件第5.2章.pptVIP

  • 1
  • 0
  • 约1.04万字
  • 约 24页
  • 2016-11-22 发布于河南
  • 举报
c语言课件第5.2章

第5,6章 二维数组中的每一行,相当于一个一维数组 多维数组 定义多维数组:类型说明 数组名[整型常数1] [整型常数2]… [整型常数k]; 对于三维数组,整型常数1,整型常数2,整型常数3可以分别看作“深”维(或:“页”维)、“行”维、“列”维。可以将三维数组看作一个元素为二维数组的一维数组。三维数组在内存中先按页、再按行、最后按列存放。 多维数组在内存中排列顺序的规律是:第一维的下标变化最慢,最右边的下标变化最快。 多维数组应用举例 字符串数组是一个二维的字符数组,其中每一行都是一个字符串 char names[People][Length]; char month[5][10] = {“January”, “February”, “March”, “April”, “May”}; 多个年段的成绩管理 #define GRADE_COUNT 3? //年段总数:3 #define CLASS_COUNT 4? //每个年段允许的最多班级数目 #define STUDENT_COUNT 40 //每个班级允许的最多学员人数 int cj [GRADE_COUNT][CLASS_COUNT][STUDENT_COUNT]; 一个学员可以有最多个成绩 ...... #define SCORE_COUNT 6 int cj [GRADE_COUNT][CLASS_COUNT] [STUDENT_COUNT][SCORE_COUNT]; ...... 多维数组作为函数参数 必须指定除最高维以后的各维大小 void Func(int arr[][5])? {? ... } void Func(int arr[][2][5])? { ... } Example: YearlyRainfall Example (cont): YearlyRainfall-1 Example (cont): YearlyRainfall-1 Example (cont) : YearlyRainfall-1 Example 2: 2-D Array-1 Example 2 (cont): 2-D Array-1 Example 2 (cont): 2-D Array-2 Example 2 (cont): 2-D Array-2 Example 2 (cont): 2-D Array-2 Example 2 (cont): 2-D Array-2 Example 2 (cont): 2-D Array-3 从这行定义,我们就应该学会高低维与现实数据的如何对应 这一点和初始化时,可以省略不写最高维大小的规则一致: * 语言程序设计 第二章简单判定性问题求解 C * 多维数组 多维数组作为函数参数 int array[4] int arr[3][4] arr[0] arr[1] arr[2] 整个数组的起始地址为arr = 100000,由三个元素组成 arr[0] arr[1] arr[2] arr[0][0] arr[0][1] arr[0][2] arr[0][3] arr[1][0] arr[1][1] arr[1][2] arr[1][3] arr[2][0] arr[2][1] arr[2][2] arr[2][3] 100044 100040 100036 100032 100028 100024 100020 100016 100012 100008 100004 100000 1 1 1 1 1 1 1 1 1 1 1 1 arr[0]由四个元素组成,其起始地址也是100000 arr[1]由四个元素组成,其起始地址是100000+4*4 arr[2]由四个元素组成,起始地址是100000+4*4*2 从数值上来说, arr, arr[0], arr[0][0] 相同 arr == arr[0] == arr[0][0] 从意义上来说, arr[0] 是 arr[0][0], 所以说arr[0]是地址变量,同理arr[1], arr[2]都是地址变量 arr[1] == arr[1][0] arr[2] == arr[2][0] 而arr是arr[0] 的地址, arr == arr[0], arr就不光是地址变量了,而且还是地址的地址变量 我们把像是arr[0], arr[1], arr[2]这样的变量称为是列指针, 而把arr叫行指针变量 例如:int array[2][3][3]; array [2][1][2] 页下标 行下标 列下标 1 2 -1 2 -3 1 4 1 -1 1 2 3 4

文档评论(0)

1亿VIP精品文档

相关文档