【C++】用指针定义多维可变长数组
我们都知道c++中的vector容器可以定义不定长数组,通过vector的嵌套可以实现多维,但显然vector对于空间和时间的消耗过大,而且代码将因此变得复杂。
本文介绍一种定义类似普通的数组,但允许多次定义长度,而不是一次定义后就不能,和拓展到高维的方法。
C++中数组变量本身其实是个指针,存储了这个数组的第一个元素的内存地址,这是因为数组中的元素内存地址是连续的。中括号是个地址偏移的运算。例如 int a[100]; ,a是数组的第一个元素地址,当我们引用a[i]时,实际上是引用了内存地址为(a+i*int类型字节数)的值。所以,一个语句a[i]=10也可以写成i[a]=10, 编译运行都是正确的。
定义一维数组的情况:
int length;//数组长度
int* a;
a=new int[length];//分配数组空间
a[1]=3;
a[0]=2;
a[2]=a[1]+4;
//可以像一般的数组一样访问
声明:该文观点仅代表作者本人,牛骨文系教育信息发布平台,牛骨文仅提供信息存储空间服务。
- 上一篇: linux用crontab执行yii脚本不成功
- 下一篇: Java API中Array类简单使用示例
copyright © 2008-2019 亿联网络 版权所有 备案号:粤ICP备14031511号-2