C语言存储模型小议
2015-10-22 22:23
197 查看
以下为一C语言程序,下面针对此程序,讲一讲C语言下该程序如何在内存中存储。
int a=0; char*p1; main() { int a,b; char s[]="abc"; char*p2; char *p3="123456"; static int c=0; p1=(char*)malloc(10); strcpy(p1,"123456"); for (a,b); } For (int p1,int p2){ int x,y; static int x; }
<table border="1" width="200" cellspacing="1" cellpadding="1"><caption>内存存储</caption><tbody><tr><td>代码区(放程序代码)</td></tr><tr><td>数据区(文字常量,全局变量,静态变量)</td></tr><tr><td>堆区(动态分配内存,new/malloc)</td></tr><tr><td>栈区(放函数参数,返回地址,局部变量)</td></tr></tbody></table>代码区和数据区合称静态存储区。先将主函数压栈,在里面放相关函数参数,返回地址;调用其他函数时,再将其他函数的参数,返回地址,变量压栈,逐次执行,每个函数执行完后,再依次退栈。
相关文章推荐
- c++ primer第五版(中文)习题答案 第一章-开始
- C语言中的scanf函数
- IOS开发学习记录--C语言中的printf函数详解&转义符
- 字符集编码(GBK,BIG5,UNICODE)与C++的string/wstring
- 彻底解密C++宽字符:1、从char到wchar_t
- C++字符串(Unicode/TCHAR/WCHAR/ASCII/LPSTR/LPCSTR等转换)
- 两数求最大值
- 给C++初学者的50个忠告
- 【c++程序】匿名对象
- C语言配置文件解析库——iniparser
- 标准C++中的string类的用法总结
- C2第三次作业
- ios c语言学习第八天 ---指针
- 爬爬爬之路:C语言(十一) 函数指针(回调函数)
- 2014 蓝桥杯 预赛 c/c++ 本科B组 第六题:奇怪的分式(11')
- C指针
- 关联容器
- 项目39.5 阿姆斯特朗数
- 设计模式(C++)
- 2014 蓝桥杯 预赛 c/c++ 本科B组 第五题:打印图形 (12' )