#include<iostream>
#include <ctime>
using namespace std;
void main()
{
static int a[1000000];
system("pause");
}
结果:
可以看出是512个字节。static int a[1000000];肯定没有占用内存。
那这个内存啥时候分配呢?
看如下代码:
#include<iostream>
#include <ctime>
using namespace std;
void main()
{
static int a[1000000];
for (int i = 0; i < 1000000;i++)
{
a[i] = i;
}
system("pause");
}
可以看到分配的内存是4444k,所以占用内存了。
从对比结果可以看出操作系统是很智能的。当它发现程序员没有针对这个静态数组对象做什么有用的事情时,它果断地不给这个对象数组分配实际的物理内存。