数组的维数必须用大于等于1的常量表达式 此常量表达式只能包含整形自面值常量,枚举常量 或者用常量表达式初始化的整型const对象
显示初始化数组元素
cosnt unsigned array_size =3;
int ia[array_size]={ 0,1,2};
int ia[]={ 1,2,3};
在函数体外定义的内置数组,初始化为0
在函数体外定义的内置数组 无元素初始化
不管数组在哪里定义 如果其元素类型为类类型 则自动调用改类的默认构造函数进行初始化 ,如果该类没有默认构造函数 则必须为该数组进行显示初始化
特殊字符数组
当使用字符串字面值来初始化创建你的新数组时,将在数组中加入空字符;
不允许数组直接复制和赋值
数组操作
int main()
{
const size_t array_size =7;
int ia1={ 0,1,2,3,4,5,6};
int ia2[array_size];
for(size_t ix=0; ix!=array_size; ++ix)
{
ia2[ix]=ia1[ix];
}
return 0;
}
指针
指针的定义和初始化
vector<int> * pvec;
int * ip1, * ip2;
string * pstring;
double * dp;
避免使用未初始化的指针
可以把数值0或在编译时可获得的0值的const量 或者null赋给指针,但是不能把int型变量赋给指针
例:输出数组元素
cosnt size_t arr_sz=5;
int int_arr[arr_sz]={ 1,2,3,4,5};
for(int * pbegin=int_arr, *pend=int_arr+arr_sz;bpegin != pend; ++pbedin)
{
count<< * pbegin<<'';
}
用指针遍历数组元素
const size_t arr_sz= 5;
int int_arr[arr_sz]={ 0,1,2,3,4};
for(int * pbegin=int_arr,*pend=int_arr+arr_sz;pbegin !=pend;++pbegin)
{
cout<<*pbegin<<' ';
}