c++ 全局数组

题目描述
输入n个正整数,然后将它们输出。

注:
需要将所有元素存储在数组中,然后一次性输出
请对比数组定义在main函数中与定义在全局的执行结果有何不同
输入描述
第一行一个整数n,表示需要输入的正整数的个数;

第二行为用空格隔开的n
个正整数(每个正整数均不超过100)。

输出描述
输出一行,表示输入的 n个正整数。整数间用一个空格隔开,行末不允许有多余的空格。

样例1
输入
3
2 8 5
输出
2 8 5

#include 
using namespace std;
int main(){
	int n;
	cin>>n;
	int a[1000000];
	for(int i=0;i<n;i++)
		cin>>a[i];
	for(int j=0;j<n-1;j++)
		cout<<a[j]<<" ";
		cout<<a[n-1];
}

c++ 全局数组_第1张图片
当我们试图在函数中开一个大数组时,很容易使程序报错退出,这是因为在函数(包括主函数)中定义变量时,变量会存放在“栈”区,栈区可以分配的内存较小,所以在开大数组的时候会因为申请不到内存而报错退出。

而如果我们把数组开在函数外面,那么将会存放在“堆”区,堆区可以分配的内存较大,适合开大数组。

#include 
using namespace std;
int a[1000000];
int main(){
	int n;
	cin>>n;
	for(int i=0;i<n;i++)
		cin>>a[i];
	for(int j=0;j<n-1;j++)
		cout<<a[j]<<" ";
		cout<<a[n-1];
}

正确
c++ 全局数组_第2张图片

你可能感兴趣的:(算法笔记,算法,c++)