码迷,mamicode.com
首页 > 编程语言 > 详细

c++ -- 动态数组

时间:2017-06-10 22:27:31      阅读:138      评论:0      收藏:0      [点我收藏+]

标签:数组名   tar   声明   参数传递   c++   常量   vector   html   二维数组   


一、关于数组的使用,有几个特殊的地方需要注意:

1.一维数组名可当做指针

    具体应用:一维数组/二维数组的传参(参见博客“c++ --二维数组参数传递http://www.cnblogs.com/cygalaxy/p/6963789.html”)

2.动态数组

    具体应用:根据实际需要为数组开辟具体大小。

int *p;                        //声明动态数组p为全局变量,在函数内确定实际长度

int main()
{
    int a=5;     
    p=new int(a*sizeof(int));  //为动态数组p开辟5个int元素空间

    for(int i=0;i<5;++i)
    {
        p[i]=i*2;             //p[i]等价于*(p+i)
        cout<<p[i]<<" ";
    }
    cout<<endl;

    return 0;
}

运行结果:

0 2 4 6 8

 

二、几种动态数组介绍:

1.采用STL中vector<T>,方便,不需要考虑开辟空间

2.采用指针,如上所示,先声明一个指针,然后用new(c语言中用malloc)申请实际需要的内存。

3.c++primer5在介绍数组一节中明确指出声明数组不能使用变量,详细如下:

int a=5;
int arr[a]={0,1,2,3,4};     //错误,a不是常量

const int b=5;
int arr1[b]={0,1,2,3,4};  //正确,b是常量

但有些编译器确可以这样做,可能是编译器扩展!

 

c++ -- 动态数组

标签:数组名   tar   声明   参数传递   c++   常量   vector   html   二维数组   

原文地址:http://www.cnblogs.com/cygalaxy/p/6979896.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!