数组是一组具有相同类型、连续的内存区域。数组的初始化:
int arrayA[ 10 ] = { 1,2 }; //剩下的自动初始化为0 int arrayB[ ] = {1, 2, 3}; //编译器默认数组长度自动设置为3
但是初始值的个数必须小于/等于数组大小。只能使用常量(字面常量/常量变量)指定数组大小,常量变量在声明时就必须赋值。
可以将static应用于局部数组声明,这样数组就不会再每次程序调用该函数时都进行创建和初始化,也不会在程序中每次改函数结束时被销毁,可以提高性能(尤其是在使用大型数组时)。当第一次遇到static局部数组声明时,程序就初始化它们;若程序员没有显示初始化,那编译器会默认把它的每个元素初始化为0(注意,C+++对其他自动变量是不执行这种默认初始化的)。
数组是按引用传递到函数。数组名的值其实就是数组的第一个元素在计算机内存中的地址。这是合理的,因为若按值传递,那么每一个元素的副本将被传递,对于大型的、传递频繁的数组来说很可怕。通过按值传递一个数组是可能的,但很少这么做。单个的数组元素和简单的变量一样,是按值传递的。
void modifyArray(int arr[], int length);
多维数组的初始化:
int mulArr1[row][col] = { {1,2,4}, {2,5,6} }; int mulArr2[row][col] = { {1,5,4, 2,2,4,}; int mulArr3[row][col] = { {1,2 }, {8} };
多维数组作为函数参数:
void printArray(const int[][3], int row)