zoukankan      html  css  js  c++  java
  • c++ -- 动态数组


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

    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是常量

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

  • 相关阅读:
    LeetCode
    LeetCode
    LeetCode
    LeetCode
    LeetCode
    LeetCode
    落忆枫音(我们终将成为”枫音乡的过客“)
    PID221 / 烦人的幻灯片☆ x
    codevs 5971 打击犯罪 x
    洛谷 P2330 [SCOI2005] 繁忙的都市 x
  • 原文地址:https://www.cnblogs.com/cygalaxy/p/6979896.html
Copyright © 2011-2022 走看看