多维数组
#include <stdio.h> #include <stdlib.h> #define STUDENTS 3 #define EXAMS 4 void printArray(int a[][EXAMS],int pupils,int tests)//打印一个二维数组 { int i,j; printf(" [0] [1] [2] [3]"); for(i=0;i<pupils;i++) { printf("\nstudentGrade[%d] ",i); for(j=0;j<tests;j++) printf("%5d",a[i][j]); } }; int main() { int studentsGrade[STUDENTS][EXAMS]={{77,68,86,73},{96,87,89,78},{70,90,86,81}}; printf("The array is:\n"); printArray(studentsGrade,STUDENTS,EXAMS); return 0; }
函数的定义把数组参数指定为int a[][3].当把一个一位数组作为某个函数的参数时,在函数参数列表中,数组的方括号是空的,对多维数组来说,第一个下标也是不必要的,但是要给出其后所有的下标。编译器要用这些下标确定这些元素在内存中的位置。不管数组的下标有多少个,所有的元素在内存中都是连续存放的。对于二维数组来说,第二行元素是接着第一行元素存放的。