如何解决数组的静态和动态声明有什么区别
我是 C++ 编程新手,我了解到所有静态变量都是在编译时在堆栈内存上分配的,因此在编译器编译之前应该知道它们的大小。
但是动态变量是在非常大的堆内存上分配的,编译器不需要事先知道大小
所以我尝试了 static 和 dynamic 声明数组,并在运行时指定它们的大小 但程序运行良好。
那么,除了事实上一个在堆上之外,它们之间有什么区别?就像两者都是数组的大小仅为 n
#include<bits/stdc++.h>
using namespace std;
main(){
int n;
cin>>n;
int arr1[n];
int *arr2 = new int[n];
for(int i=0; i<n; ++i){
arr1[i] = i;
arr2[i] = i;
}
for(int i=0; i<n; ++i){
cout<<arr1[i]<<" "<<arr2[i]<<endl;
}
}
输入:1000
输出:
0 0
1 1
2 2
3 3
.
.
.
.
(so on till)
999 999
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。