码迷,mamicode.com
首页 > 其他好文 > 详细

c_10_01内存管理

时间:2015-09-01 21:30:18      阅读:228      评论:0      收藏:0      [点我收藏+]

标签:

// // main.m // // // #import //全局变量 int num=100;//可以在所有类使用~~~~~~~~~ static int a=10;//全局变量static的作用:限制全局变量的使用范围 int main(int argc, const char * argv[]) { //计算机内存划分为5个区,地址从低到高依次是:栈区,堆区,静态区,常量区,代码区 int a=10; //栈区(地址0x7fff5fbff74c) char *s="iphone"; //常量区(指针指向常量区)(0x100000f8a) printf("%p\n",&a); printf("%p\n",s); #pragma ----栈区:函数的(参数)或者是局部变量存储在栈区 /* 1、局部变量:在函数、分支、循环的{}中定义的变量 2、栈区的内存的管理方式:由系统负责分配和回收。(定义变量的时候分配----当管理局部变量的代码段执行结束后,内存被回收)函数执行完就直接回收 3、内存被回收后,原来存储的数据没有被清空,标记删除 4、栈存储的特点:先进后出,后进先出 5、入栈,出栈。入栈:定义变量,在栈区分配存储空间,存储数据。出栈:回收内存 6、栈底、栈顶。栈区内存的起始位置,后放进去的数据在栈顶 */ #pragma ----常量区: /* 1、常量区又被称为文字常量区。(立即数:int a=10;) 2、常量区的内存管理:由系统分配和回收 3、回收:程序运行结束 4、常量区的数据只能被读取,不能被修改 */ //char *p= "iphone"; // s[0] =‘i‘;//p指向的字符串指向常量区 #pragma -------------静态区:全局变量和静态变量的存储区域 /* 1、全局变量、使用static修饰的局部变量、存储在静态区 2、静态区的内存管理:由系统分配和回收内存 3、回收:程序运行结束时回收 4、静态区的变量只能初始化一次,在编译时进行初始化,程序运行可以修改 5、静态区变量如果没有设置初始值,默认为0 */ //使用static修饰的Age,是静态变量 // static int age=18; // int n=10; // age=n; #pragma ----代码区:函数运行时存储的区域 /* 1、代码区的内存管理:系统分配和回收内存 2、回收:程序运行结束后 3、只能读取不能修改 */ // for (int i=0; i<5; i++) { // int a=10; // a++; // printf("%d\n",a); // } // for (int i=0; i<5; i++) { // static int a=10;//静态区在编译的时候执行 // a++; // printf("%d\n",a); // } return 0; }

c_10_01内存管理

标签:

原文地址:http://www.cnblogs.com/QQ765286788/p/4776764.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!