标签:style blog http color io strong 数据 ar
参考"http://blog.sina.com.cn/s/blog_63d4849c01014qg3.html"
C语言内存分为5部分:堆、栈、全局(静态)区、常量区(只读)和代码区。
堆,需要人工申请和释放内存,其他均为系统自动释放。
全局(静态)区、常量区:全局可见!
#include <stdio.h> #include <malloc.h> int a=0;//初始化全局变量,存在“全局(静态)区(data)初始化”中,程序结束后由系统释放 char *p1;//未初始化全局变量,存在“全局(静态)区(data)未初始化”中,程序结束后由系统释放 int main() { int i=0;//局部变量,存在“栈”,{}之后系统自动销毁 char s[]="abcde";//局部变量,存在“栈”中 char *p2;//局部变量,存在“栈”中 char *p3="abcde";//p3存在“栈”中;"abcde"存在“常量区”,程序结束后由系统释放 char *p4=s; char s2[]={10,11,12}; static int c=0;//存在“全局(静态)区(data)初始化” //下面分配的均为“堆”区 p1=(char*)malloc(10); p2=(char*)malloc(20); s[0]=‘d‘;//局部变量可以修改 *p4=‘d‘;//可以修改 // *p3=‘d‘; 报错,说明字符串常量存在只读数据段中,不能修改 printf("s[%d]=%c\n",i,s[i]); printf("p3[%d]=%c\n",i,*(p3+i)); printf("p4[%d]=%c\n",i,*(p4+i)); getchar(); return 0; }
【C语言】C语言程序所占内存分类,布布扣,bubuko.com
标签:style blog http color io strong 数据 ar
原文地址:http://www.cnblogs.com/ykyimin/p/3918570.html