关于数组:
1, 定义:数组的维数必须用值大于等于1的常量表达式定义。
2, 此常量表达式只能包含整型字面值常量、枚举常量、或者用常量表达式初始化的整型const对象。
例如:
 const unsigned bufsize=512;
int staffsize=27;
char ni[12];
char ina[bufsize]; //ok
 char i[staffsize];//error ,
 
如果没有显式提供元素初值,则数组元素会像普通变量一样初始化
1. 在函数体外定义的内置数组,其元素均初始化为零。//string类 初始化为””
2.       在函数体内定义的内置数组,其元素无初始化,//string初始化为空,自己做的实验检查的
3.       不管数组在那里定义,如果其元素为类类型,则自动调用该类的默认构造函数进行初始化;
4.       如果该类没有默认构造函数,则必须为改数组的元素提供显式初始化。
 
字符数组:
字符数组初始化时,可以使用字符串字面值进行初始化,但是,会包含一个额外的空字符null
例如
char ca1[]={‘a’,’b’,’c’}//no null
char ca2[]={‘a’,’b’,’c’,’\0’};//explicit null
char ca3[]=”abc”;//null terminator added automatically,
所以定义时,必须加上空字符串
例如
const char ca3[6]=”Daniel”;//error:Daniel is 7elements