const int array_size = 3;
int ix, jx, kx;
// ok: 类型为int*的指针的数组
int *iap [] = { &ix, &jx, &kx };
// 错误: 不允许引用数组
int &iar[] = { ix, jx, kx };
// 错误: 不能用另一个数组来初始化一个数组
int ia2[] = ia; // 错误
int main()
{
int ia3[ array_size ]; // ok
// 错误: 不能把一个数组赋给另一个数组
ia3 = ia;
return 0;
}
数组可以被显式地用一组数来初始化这组数用逗号分开放在大括号中例如
const int array_size = 3;
int ia[ array_size ] = { 0, 1, 2 };
被显式初始化的数组不需要指定维数值编译器会根据列出来的元素的个数来确定数组
的维数
// 维数为3 的数组
int ia[] = { 0, 1, 2 };
===============
定义了一个二维数组第一维被称作行row 维第二维称作列column 维ia 是
一个二维数组它有4 行每行3 个元素多维数组也可以被初始化
int ia[ 4 ][ 3 ] = {
{ 0, 1, 2 },
{ 3, 4, 5 },
{ 6, 7, 8 },
{ 9, 10, 11 }
}
用来表示行的花括号即被内嵌在里边的花括号是可选的下面的初始化与前面的是等
价的只是有点不清楚
int ia[4][3] = { 0,1,2,3,4,5,6,7,8,9,10,11 };
下面的定义只初始化了每行的第一个元素其余的元素被初始化为0
int ia[ 4 ][ 3 ] = { {0}, {3}, {6}, {9} };
如果省略了花括号结果会完全不同下面的定义
int ia[ 4 ][ 3 ] = { 0, 3, 6, 9 };