我是编程新手,所以我可能无法理解这一点,但据我所知,静态数组是一个在编译时定义了内存的数组,并且它的编码语义就像,
int a[5];
和动态数组是在编译期间定义内存的数组,它的编码语义类似于
int* b=new int[5];
现在他们说动态数组在运行时定义了它的内存。但是我已经提供了编译器创建我的数组b所需的所有信息,那么为什么它会等待运行时来创建它的内存。
其次,只要我在我的代码中写作
cin>>n;
int a=[n]
然后它仍然在编译。但是,正如我们所知,编译器需要有关静态数组的数组大小的信息,如果我没有提供有关数组大小的信息,那么如何编译该代码。如果需要在编译期间为该数组定义内存空间,那么它需要有关数组大小的信息。
请尝试解释动态数组是正确的,它的编码声明是什么,静态数组也是如此。