第39课 程序中的三国天下
程序中的栈:
函数调用过程:
函数调用栈的变化:
ebp的作用就是用来进行函数调用的返回的。
函数返回仅仅是修改了esp指针,栈中的数据不会立即改变。
函数调用栈上的数据:
g返回后,a数组的数据已经没有意义了。
示例:
g返回后,a中的数据就会改变了,示例如下;
第23行调用printf时已经将栈中a数组的数据破坏了。
程序中的堆:
堆的管理:
程序中的静态存储区:
全局变量和静态局部变量最终都会保存到静态存储区。静态存储区的信息最终保存在可执行程序当中,例如静态存储区的大小信息,从什么地方开始到什么地方结束,这些都会保存在exe或者.out可执行程序里面。
示例:
#include <stdio.h>int g_v = 1;static int g_vs = 2;void f() {static int g_vl = 3;printf("%p\n", &g_vl); }int main() {printf("%p\n", &g_v);printf("%p\n", &g_vs);f();return 0; }
运行结果如下:
可以看到这三个变量放在了一起。
静态数据的大小与位置在编译期就确定了。
小结:
转载于:https://www.cnblogs.com/wanmeishenghuo/p/9551672.html
第39课 程序中的三国天下相关推荐
- C基础第39课--程序中的三国天下--栈,堆,静态存储区
学习自狄泰软件学院唐佐林老师C语言课程,文章中图片取自老师的PPT,仅用于个人笔记. 栈是一种行为,后进先出的行为. 在函数调用的过程中,会在内存中维护类似上图的一个活动记录.那么以什么样的方式来维护 ...
- C语言笔记 第三十九课 程序中的三国天下
第三十九课 程序中的三国天下 程序中的栈 栈是现代计算机程序里最为重要的概念之一 栈在程序中用于维护函数调用上下文 函数中的参数和局部变量存储在栈上 栈是一种行为,一种先进后出的行为 栈保存了一个函数 ...
- C语言-第30课 - 程序中的三国天下
第30课 - 程序中的三国天下 一. 概念 内存基本构成 可编程内存在基本上分为这样的几大部分:静态存储区.堆区和栈区.他们的功能不同,对他们使用方式也就不同. 静态存储区:内存在程序 ...
- C语言进阶:程序中的三国天下 考研数据结构
C语言笔记 第三十九课 程序中的三国天下 C语言笔记 第三十九课 程序中的三国天下_YLC_慕类的博客-CSDN博客 C基础第42课 -- 内存操作经典问题分析二 C基础第42课 -- 内存操作经典问 ...
- 【C】39.程序中的三国天下
程序中的三国天下是介绍: 栈, 堆, 静态存储区 栈区 主要保存函数调用时所需要的参数信息.局部变量等信息,还包括一些看不到的返回地址,寄存器信息等等(可以说没有栈程序就没法运行).栈就是一种行为,后 ...
- C语言进阶第39式:程序中的三国天下
程序中的栈 栈是现代计算机程序里最为重要的概念之一: 栈在程序中用于维护函数调用上下文: 函数中的参数和局部变量存储在栈上: 栈保存了一个函数调用所需的维护信息 函数调用过程 每次函数调用都对应着一个 ...
- 38、程序中的三国天下
1.程序中的栈 栈是现代计算机程序里最为重要的概念之一(这个栈和数据结构里面的栈概念上一样,表现形式上不一样) 栈在程序中用于维护函数调用上下文 函数中的参数和局部变量存储在栈上 注: 1.栈:就是一 ...
- 第30节 程序中的三国天下
-------------------------------------资源来源于网络,仅供自学使用,如有侵权,联系我必删. 第一: 程序中的栈 ? 栈是现代计算机程序里最为重要的概念之一 ? ...
- 【C深入】程序中的三国天下,栈,堆,静态内存
1 栈 1.1 程序中的栈 栈是现代计算机程序里最重要的概念之一. 栈在程序中用于维护函数调用上下文. 函数中的参数和局部变量存储在栈上. 栈是一种后进先出的行为. 1.2 函数调用过程 栈保存了一个 ...
最新文章
- 从大麦网架构学到的东西
- Java黑皮书课后题第3章:**3.15(游戏:彩票)修改程序清单3-8,产生三位整数的彩票。程序提示用户输入一个三位整数,然后依照规则判定用户是否赢得奖金
- 【CKFinder】解决上传中文名文件乱码和文件重命名的问题
- mysql快速入门_MySQL快速入门(三)
- linux中断处理体系结构分析(一),Linux中断处理体系结构分析(二)
- laravel的重定向
- (转)awk实例练习(二)
- 形式语义学关于带权有向图最短路径的有模式函数算法
- 【xpath】多个xpath Element对象,提取结果是一样的
- 《数据结构与算法》——线性表之顺序表(SqList)总结
- 增值税相关软件基本常识
- 张朝阳夜跑33公里:直播聊物理 揭示“超级月亮”成因
- 如何通俗易懂地理解递归
- js中的shift()函数
- 西门子梯形图转换C语言,梯形图和指令表相互转换
- 分享一些实用的手机应用
- 字号与磅值的对应关系
- displayblock详解
- 设计模式之SOLID原则
- 二十世纪九十年代,可以简化为1990年代
热门文章
- Java中抽象类与方法的重写
- KOLO是如何赋能NFT音乐行业?
- 护肤品行业竞争格局:2022年外资品牌护肤品占据主导地位
- 重温士兵突击之后 职场风云
- Python学习笔记(六)Python基础_数据类型——字符串
- xshell文件传输乱码_在Xshell中使用rz命令上传文件出现乱码且文件无法删除的解决办法...
- 一般网站有哪些常见漏洞?
- C++:最小二乘法拟合直线
- i3 1215U 和 i5 1235U选哪个好
- Unity3D案例太空射击(Space Shooter)流程介绍与代码分析(上)