从静态存储区域分启闷配:内存在程序编译的时候就已经分配好,这块内存在程序的整个运行期间都存在。例如全局变量,static变量。
在栈上创建(地址从大到小):在执行函数时,函数内局部变量的存储单元都可以在栈上创建,函数执行结束时这些存储单元自动被释放。栈内存分配运算内置于处理器的指令集中,效率很高,但是分配的内存容量有限。(栈上的变量都具有临时变量的特性)
从堆上分配(唯睁地址从小到大):亦称动态内存分配。程序在运行的时候用malloc或new申请任意多少的内存,程序员自行负责在何时用free或delete释放内存。
扩展资料:
注意事项悄山弯:
const在C语言中使用比较多,虽然变量由const修饰,但是从本质上仍然是变量,所以存储在堆栈和静态存储区,这么区域从进程角度来讲是可读可写,但为什么const修饰后将变得不可写了。
既然const变量所在区域的属性为可读可写,那么可以修改其所处内存的值了。
C语言const变量的作用说起:const是一个c语言的关键字,限定一个变量不允许被改变,产生静态作用。使用const在一定程度上可以提高程序的安全性和可靠性。另外在观看别人代码的时候,清晰理解const所起的作用,对理解对方的程序也有一些帮助。
参考资料来源:百度百科-c语言
参考资料来源:百度百科-常量
常量和变量是放在不同的"段"(section)里,程序一旦加载,常量/变量自然都在内存里。
在程序的运行过程中,把需要处理的数据存放在内存储器中,称始终保持不变的数据为“常量”,称存放可变数据的存储器单元为“变量”,其中的数据称为变量的值。
整数是以补码的形式转换为二进制代码存储在计算机中。
实数是以IEEE754标准转回换为二进制代答码存储在计算机中。
字符本质实际也与整数的存储方式相同(先通过ASCII码把字符转换为对应的整数,再按整数以补码形式转换为二进制)。
扩展资料:
在除了‘C/C++’的一些高级程序语言中,‘常量’可以被称作,“在一个信息变化过程中,始终不发生改变的量”,其可以是不随着时间变化的某些量的固定衫纳信息;也可以表示为某一数值的字符(或字符串),常被用来标识、测量和比较两者早汪的差异。
但在 ‘C/C++语言中’,‘常量’如果还用‘运行过程中不变的量’来描述,就显得不太准确了,甚至是在具体使用时,这就陆塌仔是一个错误的概念。在 ‘C/C++’中,定义‘指针常量’时,根据‘const ’的位置的不同,可以定义出几个不同的形式,虽然其看起来‘符合常量的概念’,但是在实际运行中,其值或地址值是会发生变化的。所以本质还不是‘常量概念’
参考资料来源:百度百科-常量
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)