动态数组

数组变量和指针变量

C++数组变量实际是指针变量,指向数组的第一个索引变量
有一个重要区别是不可更改数组变量中的指针值

//p和a是同类型变量
int a[10];
typedef int* IntPtr;
IntPtr p;
p = a; //合法
IntPtr p2;
...    //为p2赋一个指针值
a = p2; //非法, 不能为数组a赋不同的地址

创建和使用动态数组

动态数组使用new创建.由于数组变量其实就是指针变量,所以可以用new创建被用作数组的动态变量,并像使用普通数组那样使用动态数组变量.

//创建一个动态数组变量
typedef double* DoublePtr;
DoublePtr d;
d = new double[10]; //可用int变量代替10,到程序运行时才读入动态数组的长度
...
delete [] d;  //删除动态数组需要加[]

多维动态数组

int d1, d2;
IntArrayPtr *m = new IntArrayPtr[d2]   
int i, j;
for (i = 0; i < d1; i++){
    m[i] = new int[d2]
}
//m现在成为一个d1*d2 的多维数组

...
for (i = 0; i < d1;i++){
    delete[] m[i];
}
delete[] m;

注意对于创建数组的每个new调用,都必须有一个对应的delete[]调用.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值