在C中定义一个变量将意味什么?1、规定变量的取值范围。2、规定变量的操作3、规定变量的作用域(或者生命周期、或者访问控制)4、规定了变量的存储方式(或者存储格式)。在纯C中Static有两个作用(不考虑C++以及二则混合使用):1、Static修饰局部变量:该变量能在所定义的函数中共享(参考例一)。...
分类:
其他好文 时间:
2015-03-19 23:24:45
阅读次数:
118
存储区的概念常见的存储区域可分为:
栈
由编译器在需要的时候分配,在不需要的时候自动清除的变量的存储区。里面的变量通常是局部变量、函数参数等。
堆
由new分配的内存块,他们的释放编译器不去管,由我们的应用程序去控制,一般一个new就要对应一个delete。如果程序员没有释放掉,程序会一直占用内存,导致内存泄漏,在程序结束后,操作系统会自动回收。由malloc等分配的内存块,它和堆是十分相似的,不过...
分类:
其他好文 时间:
2015-03-19 18:33:34
阅读次数:
261
从字面上看,static的意思是静态的。由static'修饰的变量或函数,改变了其存储方式和可见性,static关键字的作用主要有拓展生命周期、限制作用域和保持数据唯一性。 1、拓展生命周期 拓展生命周期是针对c语言中局部变量,因为static关键字改变了局部变量的存储方式。c/c++中...
分类:
其他好文 时间:
2015-03-18 23:04:10
阅读次数:
161
在计算机系统中,运行的应用程序的数据都保存在内存中,不同类型的数据所保存在的区域不同,应用程序中总共有五个内存区域:
(1)、栈区【stack】:由编译器自动分配并释放,一般存放函数的参数值,局部变量等
(2)、堆区【heap】:由程序员分配和释放内存,如果程序员不释放,程序结束时,可能会由操作系统回收
(3)、全局区【静态区】【static】:全局变量和静态变量的存储是放在一起的,而该区又...
分类:
其他好文 时间:
2015-03-17 21:53:30
阅读次数:
139
栈,就是那些由编译器在需要的时候分配,在不需要的时候自动清除的变量的存储区。里面的变量通常是局部变量、函数参数等。在一个进程中,位于用户虚拟地址空间顶部的是用户栈,编译器用它来实现函数的调用。和堆一样,用户栈在程序执行期间可以动态地扩展和收缩。 堆,就是那些由new分配的内存块,他们的释放编译器不....
分类:
编程语言 时间:
2015-03-16 19:16:28
阅读次数:
162
??
在C++中,内存分成5个区,他们分别是堆、栈、自由存储区、全局/静态存储区和常量存储区。
栈,就是那些由编译器在需要的时候分配,在不需要的时候自动清除的变量的存储区。里面的变量通常是局部变量、函数参数等。
堆,就是那些由new分配的内存块,他们的释放编译器不去管,由我们的应用程序去控制,一般一个new就要对应一个delete。如果程序员没有释放掉,那么在程序结束后,操作系统会自动回...
分类:
编程语言 时间:
2015-03-13 22:24:42
阅读次数:
174
内存分配方式内存分配方式一共有三种:(1)从静态存储区域分配;内存在程序编译的时候就已经分配好,这块内存在程序的整个运行期间都存在,例如,全局变量,静态变量。(2)在栈上创建;在执行函数时,函数内局部变量的存储单元都可以在栈上创建,函数执行结束后这些存储单元自动被释放。栈内存分配运算内置于处理器的指...
分类:
编程语言 时间:
2015-03-13 22:18:30
阅读次数:
136
一、auto关键字的前世从C语言开始,auto关键字就被当作是一个变量的存储类型修饰符,表示自动变量(局部变量)。它不能被单独使用,否则编译器会给出警告。#include int main(){ int a = 123; auto int b = 234; ...
分类:
编程语言 时间:
2015-03-13 18:37:00
阅读次数:
179
一个由c/C++编译的程序占用的内存分为以下几个部分
1、栈区(stack)―由编译器自动分配释放,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。
2、堆区(heap)―一般由程序员分配释放,若程序员不释放,程序结束时可能由OS回收。注意它与数据结构中的堆是两回事,分配方式倒是类似于链表,呵呵。
3、全局区(静态区)(static)―,全局变量和静态变量的存储...
分类:
其他好文 时间:
2015-03-13 14:25:39
阅读次数:
177
一、auto关键字的前世
从C语言开始,auto关键字就被当作是一个变量的存储类型修饰符,表示自动变量(局部变量)。它不能被单独使用,否则编译器会给出警告。
#include
int main()
{
int a = 123;
auto int b = 234;
auto c = 345;
printf("a = %...
分类:
编程语言 时间:
2015-03-12 17:20:39
阅读次数:
280