那么到底什么是变量?看看下面这个程序
# include<stdio.h>
int main(void)
{
int i = 10;
i = 20;
printf("i = %d\n", i);
return 0;
}
int i 表示定义一个变量 i。那么程序在运行时定义的变量 i 存储在什么地方呢?
存储在内存还是硬盘上呢?
答案是在存储在内存中的。当单击编译,链接,执行后弹出一个黑色窗口,关闭那个黑色窗口后,就是意味着这个程序运行了一遍,而且这一遍已经停止了。此时存储的 3 的内存空间就没有了,要是有的话就麻烦了,如果任何软件运行了一遍之后为他分配的空间仍保留着,那么计算机在运行几次的话就不行了,程序运行之后,为这个程序所分配的所有内存空间统统都会被释放掉,以便被下一个程序使用。
所谓的“释放”并不是指清空该内存空间,而是指将该内存空间标记为“可用”状态,使得系统在分配内存的时候可以将它重新分配给其他变量使用。如果没有被释放的话系统在分配内存的时候是不会使用该内存空间的,因为它已经被别的变量使用了,是不可用的状态。
下面我们看看这两条语句是运行的,首先看程序是如何运行 “int i”的,当VC++运行这个程序时候,他会向系统请求操作系统在内存中寻找一个空闲的存储单元,然后把它当作变量 i 来使用。也就是说这个存储单元的地址和 I 产生的一种关联。即变量 i 现在就是这个存储单元,这个存储单元现在就是变量 i 。