C语言课程课件 第十三章 编译预处理和动态存储分配
5页1、第13章 编译预处理和动态存储分配 13.1 编译预处理 13.2 动态存储分配13.1 编译预处理宏替换-不带参数#define 宏名 替换文本例如: #define SIZE 100此命令为编译预处理命令,只要在原程 序中名有SIZE的标识符都用100来替换 ,SIZE就相当于100是替身。请分析如下程序: #include #define SIZE 100 main() int a=10,b=20,c;c=a+b+SIZE;printf(“%d”,c); c=a+b+100;#include #define N 2 #define M N+1 #define NUM 2*M+1 main() int i;printf(“%dn“,NUM); 2+1 2*2+1+113.1 编译预处理宏替换-带参数例如: #define MU(X , Y) ( (X) * (Y) ): a= MU(5, 2); b=6/ MU(a+3, a);( (5) * (2) )a= ( (5) * (2) );( (a+3) * (a) )b=6/( (a+3) * (a) );改写: #define M
2、U(X , Y) X * Y: a= MU(5, 2); b=6/ MU(a+3, a);a=5*2; b=6/a+3*a;终止宏定义:#define PI 3.14 main() : #undef PI: 以上PI的作用域从 #define PI 3.14 命令行开始,到 #undef PI命令行 结束。从#undef以后 的PI变成无定义,不再 代表3.14了。13.2 动态存储分配知识点回顾在前面我们学过,在对变量和数组进行定义实质上就是给它们 开辟相应大小的内存单元。我们除了可以用定义的方式来开辟 内存单元,还可以用一些函数来动态的分配和释放内存空间。1。动态分配内存的函数:malloc(size)size必须是无符 号整型,用来表 示开辟几个字节 的内存空间。函数返回值的 类型为void *例如:float *pf;pf=(float *)malloc(4)/*分配了4个字节的存储空间, 再将它强制类型转换成所需 的类型,让pf指向该存储单元*/pf 若有语句段:if( pf != NULL ) *pf=3.83.8如上语句也可以使用sizeof()函数来求得字节数:pf=( float * ) malloc ( sizeof( float ) )3。动态释放空间的函数:free(pf) 、 free(ps) /*此函数没有返回值*/2。动态分配内存的函数(连续的内存):calloc(n,size)/*该函数为分配n个连续的存储空间*/例如:char *ps;ps=(char *)calloc(10,sizeof(char);开辟了10个连续的char类型 的存储单元,由ps指向存储 单元的首地址。习题13.1 有以下程序 #include #define MIN(x,y) (x) #define N 2 #define M N+1 #define NUM (M+1)*M/2 main() int i;for(i=1;i=NUM;i+); printf(“%dn“,i);
《C语言课程课件 第十三章 编译预处理和动态存储分配》由会员杨****分享,可在线阅读,更多相关《C语言课程课件 第十三章 编译预处理和动态存储分配》请在金锄头文库上搜索。
金属材料与热处理课程总复习课件(ppt)
金属切削原理课件 第8章 工件材料切削加工性
Java EE 课程ppt课件 第13章 Spring基础
Java EE 课程ppt课件 第6章 Struts 2的其他应用
Java EE 课程ppt课件 第2章 Struts 2基础
制作精良优美的高质量PPT模版 紫色主色调简洁风
制作精良优美的高质量PPT模版 数码风格论文答辩模版
制作精良优美的高质量PPT模版 蓝白主色调简洁风
制作精良优美的高质量PPT模版 答辩报告毕业设计 蓝色主色调
弹性力学与有限元教学课件第6.2章 ANSYS软件的应用
机械优化设计课件 绪论第1章 优化设计概述
金属切削原理课件 第9章 切削液
制作精良优美的高质量PPT模版 枣红色 毕业答辩论文模版
制作精良优美的高质量PPT模版 论文答辩 星空背景简洁风
制作精良优美的高质量PPT模版 毕业实习答辩 灰色风格
制作精良的论文答辩PPT模版 橙色主色调
艺术花色文艺风ppt模板
数值分析 第八章 常微分方程数值解法
郑州大学概率论与数理统计课程 第8章 假设检验part2
郑州大学概率论与数理统计课程 第4.4章 大数定律
2023-04-12 16页
2021-07-26 46页
2021-07-26 27页
2021-07-26 14页
2021-07-26 26页
2021-07-26 39页
2021-07-26 10页
2021-02-01 20页
2021-02-01 44页
2021-02-01 15页