1.数组的维数必须是大于等于1的常量表达式,此常量表达式只能包含整型字面值常量、枚举常量或者用常量表达式初始化的整型const对象。也就是说非const变量或者是要到运行阶段才知道其值的const变量都不能用于定义数组的维数。
2.如果没有显示提供元素初值则在函数体外定义的内置类型的数组,其元素均初始化为0;在函数体内定义的内置类型的数组,元素无初始化。
3.如果维数大于列出的元素初值个数,则只初始化前面的数组元素,剩下的其他元素,若是内置类型则初始化为0.,若是类类型则调用该类的默认构造函数进行初始化。
4.不允许数组直接复制和赋值,也就是说一个数组不能用另外一个数组初始化,也不能将一个数组赋值给另外一个数组。如:int ia[]={1,2,3};//ok
int ia2[](ia);//error
int main()
{
const unsigned array_size=3;
int ia3[array_size];
ia3=ia; //error
return 0;
}
注:一些编译器允许将数组赋值作为编译器扩展,但写程序的时候还是应该避免这种情况。
5.数组下标类型是size_t。