1. 动态分配
动态分配就是在运行的时候进行内存的分配,在C++中,可以在栈上分配数组,这种情况下,必须指定数组的长度,长度不能是变量,必须是常量或者常量表达式(其原因在于静态分配在编译时需要知道数组的长度,而变量在编译时不知道大小,所以必须指定为常量)
动态分配的长度可以是变量,也可以是输入的数值。
不同于Java,C++的数组可以分配在栈上(静态分配(int a[5])。
Java除了基本类型,所有的类型都是引用类型,都在堆中分配。Java的这一特性就要求java在数组声明时不能指定数组的长度(error:int a[5];),只有在数组动态分配内存时才能指定数组的长度。