好文档 - 专业文书写作范文服务资料分享网站

C语言进阶知识总结讲义

天下 分享 时间: 加入收藏 我要投稿 点赞

轻松入门 实战应用 技术交流群387220290

各区元素分析

1.4函数调用模型 1.4.1基本原理

轻松入门 实战应用 技术交流群387220290

1.4.2内存四区模型和函数调用模型变量传递分析

1、一个主程序有n函数组成,c++编译器会建立有几个堆区?有几个栈区?

2、函数嵌套调用时,实参地址传给形参后,C++编译器如何管理变量的生命周期? 分析:函数A,调用函数B,通过参数传递的变量(内存空间能用吗?)

轻松入门 实战应用 技术交流群387220290

1.4.3提示学好C语言的关键

1.4.4如何建立正确的程序运行内存布局图

? 内存四区模型&函数调用模型 ? 函数内元素

? 深入理解数据类型和变量“内存”属性 ? 一级指针内存布局图(int *,char*) ? 二级指针内存布局图(int ** char **) ? 函数间

? 主调函数分配内存,还是被调用函数分配内存

? 主调函数如何使用被调用函数分配的内存(技术关键点:指针做函数参数)

======》学习指针的技术路线图

1.5内存四区强化训练

01全局区训练

? char *p1= “abcdefg”; 02 堆栈区生命周期训练 ? Char p1[]= “abcdefg”; ? 返回基本类型

轻松入门 实战应用 技术交流群387220290

? 返回非基本类型 03堆栈属性训练

? 测试heap生长方向 ? 测试stack生长方向

? Heap、stack生长方向和内存存放方向是两个不同概念 ? 野指针

? Malloc得到指针释放问题测试

? free(p)

? free(p+1),深入理解

1.6作业强化 训练1划出内存四区

void main26() { char buf[100]; //byte b1 = new byte[100]; 轻松入门 实战应用 技术交流群387220290

} int a = 10; //分配4个字节的内存 栈区也叫临时区 int *p;//分配4个字节的内存 p = &a; //cpu执行的代码,放在代码区 *p = 20; // { } system(\ char *p = NULL; //分配4个字节的内存 栈区也叫临时区 p = (char *)malloc(100); //内存泄露概念 if (p != NULL) { } free(p); 全局区代码测试 char * getstring1() { } char * getstring2() { char *p2 = \ return p2; char *p1 = \ return p1;

38pl56jphj5dq8n1sig30fluh9boav00ulx
领取福利

微信扫码领取福利

微信扫码分享