第1个回答 2012-01-07
我理解吧,这个动态跟静态主要是针对指针而言的。而且对于单个变量来说,动态跟静态的概念体现的不是特别清楚,下面主要介绍数组吧。
如果你声明一个数组int a[100],那么这个数组的大小就是100,在内存中的位置也固定,如果后来发现数组不够大,你就只能重新定义一个更大的数组,而不能直接改变数组a的大小。这就是静态存储。
如果你声明一个指针int *p,一开始你想开辟一个100的数组,就写p = new int[100],后面发现100不够大,你可以先delete []p,把原来的空间释放掉,然后让p = new int[200],p就会指向一个大小为200的数组,这个数组的大小以及在内存中的位置可以根据需要不断变化。这就是动态存储。