在静态存储区:内存的分配在程序执行前就分配好了,在程序运行的过程中一直存在,如全局变量,和static声明的变量。 在栈中:内存的分配是在程序的运行过程中被分配,函数结束后系统自动释放。 在堆中:即动态分配,一般用malloc和new分配内存的大小,程序员自己用free和delete自己释 放, 因...
分类:
编程语言 时间:
2014-07-20 22:04:42
阅读次数:
215
全局变量全部存放在静态存储区中,在程序开始执行时给全局变量分配存储单元,程序执行完毕就释放这些空间。在程序执行过程中它们占据固定的存储单元,而不是动态地进行分配和释放。在动态存储区中存放以下数据: 1函数形式参数。在调用函数时给形参分配存储空间。2函数中的自 动变量(未加static声明的局部变量,...
分类:
编程语言 时间:
2014-07-18 09:19:49
阅读次数:
332
"声明一个数组时,编译器将根据声明所指定的元素数量为数量为数组保留内存空间。"其实就是编译器在编译的过程中,会加入几条汇编指令在程序里处理内存分配,并不是说编译时就分配了内存,不要理解错了。-------------------1.内存分配方式 内存分配方式有三种: [1]从静态存 储区域分配。内存...
分类:
编程语言 时间:
2014-07-09 17:16:55
阅读次数:
245
1、c++/c语言中不少地方,数组和指针可以相互替换使用,容易让人产生一种错觉,指针和数组是等价的。数组要么在静态存储区域创建,如全局数组;要么在栈上创建如函数内的数组。数组的名称对应着(而不是指向)一块内存,它的地址和容量在其生命周期内保持不变,数组的内容可变。指针可以指向任意类型的内存块,它的特...
分类:
其他好文 时间:
2014-07-06 15:43:31
阅读次数:
241
python: 查看内存地址。1 a=12 print a3 #输出物理内存地址 4 print id(a) 5 #输出物理内存地址(十六进制)6 print hex(id(a))View Code内存基础(C语言):一个程序就是一个进程。堆、栈、全局/静态存储区和常量存储区。什么是常量,全局变量,...
分类:
其他好文 时间:
2014-06-30 13:35:25
阅读次数:
197
内存分配方式有三种:(1) 从静态存储区域分配。内存在程序编译的时候就已经分配好,这块内存在程序的整个运行期间都存在。例如全局变量,static变量。(2) 在栈上创建。在执行函数时,函数内局部变量的存储单元都可以在栈上创建,函数执行结束时这些存储单元自动被释放。栈内存分配运算内置于处理器的指令集中...
分类:
其他好文 时间:
2014-06-26 22:28:11
阅读次数:
226
C++/C程序中,指针和数组在不少地方可以相互替换着用,让人产生一种错觉,以为两者是等价的。 数组要么在静态存储区被创建(如全局数组),要么在栈上被创建。数组名对应着(而不是指向)一块内存,其地址与容量在生命期内保持不变,只有数组的内容可以改变。 指针可以随时指向任意类型的内存块,它的特征是“可变....
分类:
其他好文 时间:
2014-06-26 22:11:18
阅读次数:
288
一、内存基本构成
可编程内存在基本上分为这样的几大部分:静态存储区、堆区和栈区。他们的功能不同,对他们使用方式也就不同。
静态存储区:内存在程序编译的时候就已经分配好,这块内存在程序的整个运行期间都存在。它主要存放静态数据、全局数据和常量。
栈区:在执行函数时,函数内局部变量的存储单元都可以在栈上创...
分类:
其他好文 时间:
2014-05-26 07:53:33
阅读次数:
308
1.内存分配方式
内存分配方式有三种:
[1]从静态存储区域分配。内存在程序编译的时候就已经分配好,这块内存在程序的整个运行期间都存在。例如全局变量,static变量。
[2]在栈上创建。在执行函数时,函数内局部变量的存储单元都可以在栈上创建,函数执行结束时这些存储单元自动被释放。栈内存分配运算内置于处理器的指令集中,效率很高,但是分配的内存容量有限。
[3]从堆上分配,亦...
分类:
其他好文 时间:
2014-05-12 23:57:25
阅读次数:
508
数组和指针的区别2010-04-07 17:32:40分类:C/C++
C++/C程序中,指针和数组在不少地方可以相互替换着用,让人产生一种错觉,以为两者是等价的。数组要么在静态存储区被创建(如全局数组),要么在栈上被创建。数组名对应着(而不是指向)一块内存,其地址与容量在生命期内保持不变,只有数组...
分类:
其他好文 时间:
2014-05-10 03:21:20
阅读次数:
278