一、新建一个动态数组
数组名和下标操作符[]的组合可以被替换成一个指向该数组的基地址的指针和对应的指针运算:
int a[20];
int *x = a;
指针变量 x 指向数组 a 的地址, a[0] 和 *x 都代表数组的第一个元素。
于是,根据指针运算原则, a[1] 等价于 *(x+1)、 a[2] 等价于 *(x+2) ,以此类推。
反过来也成立,
- 把一个数组声明传递给 new 语句将使它返回一个该数组基类型的指针。
- 把数组下标操作符和该指针变量的名字搭配使用就可以像对待一个数组那样使用 new 语句为这个数组分配的内存块了。
例如:
int *x = new int[10];
• 可以像对待一个数组那样使用指针变量 x :
- x[1] = 45;
- x[2] = 8;
• 当然,也可以用一个变量来保存该数组的元素个数:
- int count = 10;
- int *x = new int[count];
案例:
写一个程序,能够在程序运行时让用户输入一个值自行定义数组的长度。
#include<iostream>
#include<string>int main()
{unsigned int count=0;std::cout<<"请输入数组的元素个数:\n";std::cin>>count;int *x=new int[count];for(int i=0;i<count;i++){x[i]=i;}for(int i=0;i<count;i++){std::cout<<"x["<<i<<"]的值是:"<<x[i]<<"\n"; }return 0;
}
二、 删除一个动态数组
在 delete 保留字的后面加上一对方括号:
delete [] x;
未完待续。。。