首页 > 代码库 > c++ -- 动态数组
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是常量
但有些编译器确可以这样做,可能是编译器扩展!
c++ -- 动态数组
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。