什么是变长数组?
变长数组是指在编译时不能确定数组长度,程序在运行时需要动态分配内存空间的数组。
1.普通方式实现一维变长数组:
#include<iostream> using namespace std; int main() { int len; cin>>len; //用指针p指向new动态分配的长度为len*sizeof(int)的内存空间 int *p=new int[len]; /*注意int *p=new int[len];这一句,你不能这样做: int p[len]; C++编译器会报错说len的大小不能确定,因为用这种形式声明数组,数组的大小需要在编译时确定。而且这样也不行: int p[]=new int[len]; 编译器会说不能把int*型转化为int[]型,因为用new开辟了一段内存空间后会返回这段内存的首地址,所以要把这个地址赋给一个指针,所以要用: int *p=new int[len]*/ ........... delete[] p;//注意要注销指针p,使程序释放用new开辟的内存空间 }