数组的定义和初始化

数组的定义和初始化
数组的维数必须用大于等于1的常量表达式 此常量表达式只能包含整形自面值常量,枚举常量 或者用常量表达式初始化的整型const对象
显示初始化数组元素
  1. cosnt unsigned array_size =3;
  2. int ia[array_size]={0,1,2};
  3. int ia[]={1,2,3};

在函数体外定义的内置数组,初始化为0
在函数体外定义的内置数组 无元素初始化
不管数组在哪里定义 如果其元素类型为类类型 则自动调用改类的默认构造函数进行初始化 ,如果该类没有默认构造函数 则必须为该数组进行显示初始化
特殊字符数组
当使用字符串字面值来初始化创建你的新数组时,将在数组中加入空字符;
不允许数组直接复制和赋值
数组操作
  1. int main()
  2. {
  3. const size_t array_size =7;
  4. int ia1={0,1,2,3,4,5,6};
  5. int ia2[array_size];
  6. for(size_t ix=0; ix!=array_size; ++ix)
  7. {
  8. ia2[ix]=ia1[ix];
  9. }
  10. return 0;
  11. }

指针
指针的定义和初始化
  1. vector<int> * pvec;
  2. int * ip1, * ip2;
  3. string * pstring;
  4. double * dp;

避免使用未初始化的指针
可以把数值0或在编译时可获得的0值的const量 或者null赋给指针,但是不能把int型变量赋给指针

例:输出数组元素
  1. cosnt size_t arr_sz=5;
  2. int int_arr[arr_sz]={1,2,3,4,5};
  3. for(int * pbegin=int_arr, *pend=int_arr+arr_sz;bpegin != pend; ++pbedin)
  4. {
  5. count<< * pbegin<<'';
  6. }
用指针遍历数组元素
  1. const size_t arr_sz= 5;
  2. int int_arr[arr_sz]={0,1,2,3,4};
  3. for(int * pbegin=int_arr,*pend=int_arr+arr_sz;pbegin !=pend;++pbegin)
  4. {
  5. cout<<*pbegin<<' ';
  6. }





posted @ 2017-01-04 14:16  feizuzu  阅读(3335)  评论(0编辑  收藏  举报