数组的初始化:如果没有显示提供元素初值,则数组则会和普通变量一样初始化。
#include <iostream>
#include <cstddef>
using namespace std;
int main(void)
{
const size_t size=5;
int a[size]={};
for(size_t i=0;i<size;i++)
{
cout<<a[i]<<" ";
}
cout<<endl;
const size_t row=3;
const size_t col=4;
int b[row][col];
for(size_t i=0;i<row;i++)
{
for(size_t j=0;j<col;j++)
{
cout<<b[i][j]<<" ";
}
cout<<endl;
}
return 0;
}
上述程序中,对于局部数组变量={},凡是出现大括号的,如果没有显示给出初始值,则初始化为0,如果表达式中无大括号,则无初始化,其中的值未知。
字符数组初始化时,数组大小一定要大于字符串长度+1,否则编译错误。
const char ch[6]="Daniel"; //error: initializer-string for array of chars is too long.
数组下标的正确类型是size_t。
定义指向数组的指针的两种方式:
int ia[3][4];
int (*ip)[4]=ia;
或者:
typedef int int_array[4];
int_array *ip=ia;
上述两种定义方式有相同的效果。