- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
3 变量的存储类型 3 静态变量:全局数据区 标准定义格式 static 类型名 变量名; 程序执行过程当中一直存在 * 3 变量的存储类型 3 例2分析程序结果: #include stdio.h int f(int a) { static int s=0; s++; return s+a; } int main( ) { int i,s=0; for(i=0;i3;i++){ s+=f(i); } printf(“s=%d”,s); return 0; } lesson14_02.c * 3 编译预处理命令 5 编译预处理:程序在编译之前做的一些处理 编译预处理命令:以#打头 * 3 编译预处理命令 5 #define命令 #define 宏名字 替换文本 例如:#define PI 3.14 在#define之后,所有独立出现“宏名字”的地方(除了字符串外)都被“替换文本”替换 * 3 编译预处理 5 #include stdio.h #define PI 3.14 int main(){ float l,s,r; scanf(“%f”,r); l=2*PI*r; s=PI*r*r; printf(“l=%f,s=%f”,l,s); return 0; } 编译时: main(){ float l,s,r; scanf(“%f”,r); l=2*3.14*r; s=3.14*r*r; printf(“l=%f,s=%f”,l,s); } 例3 使用 3.14 替换 PI lesson14_03.c * 3 编译预处理命令 5 宏可以有参数 例如: #define ADD2( ) a,b a*a+b*b 宏名中间不要有空格 参数没类型 注意替换发生后产生的非预想结果 * 3 编译预处理命令 5 #include “stdio.h” #define ADD2(a,b) a*a+b*b int main(){ int sum,x,y,z; scanf(“%d%d”,x,y); sum=ADD2(x+y,x-y); printf(“sum=%d”,sum); return 0; } sum=a*a+b*b sum=x+y*x+y+x-y*x-y 预防方法: 在宏体的参数中加() 替换过程 lesson14.04_1.c * 3 编译预处理命令 5 #include “stdio.h” #define ADD2(a,b) (a)*(a)+(b)*(b) int main(){ int sum,x,y,z; scanf(“%d%d”,x,y); sum=ADD2(x+y,x-y); printf(“sum=%d”,sum); return 0; } sum=(a)*(a)+(b)*(b) sum=(x+y)*(x+y)+(x-y)*(x-y) 替换过程 lesson14.04_2.c * 3 编译预处理命令 5 与#define配套命令 #undef,从现在开始取消#define的定义 #undef MAXLINE #if, #else,#elif,#endif #ifdef,#ifndef 这些预编译指令通常用来处理多文件工程和程序多版本的问题。(程序多版本一般是不同平台的版本,不同用户等级的版本,不同开发阶段的版本等) * 3 编译预处理命令 5 #include 用#include指定的文件内容替换#include所在的行 用或者“”括上文件名 表示在编译器的include目录内查找文件 “”表示在当前目录查找文件 文件名中可以带有路径 * 3 课后练习 8 1、编写函数maxIndex(),该函数返回一个数组的最大值的下标,利用该函数编程实现,从键盘任意输入10个整数,输出其中的最大值。 2、编写函数myStrcat(),该函数完成两个字符串的连接,利用该函数,编程实现字符串srcStr连接到字符串dstStr的尾部。 * Lesson 13 程序的组织结构 * 学习目标: 3 1 学会使用结构化程序设计方法编写程序 * 3 函数调用 2 函数调用的一般形式: 函数名( 实参列表 ) ; 实参与形参的个数应相等,类型一致,顺序一一对应 各个实参之间用逗号分隔 调用无参函数时格式为:函数名( ); 注意( )不能省略 * 3 函数调用 2 函数调用的一般形式: 函数名(实参列表) ; 形式参数(形参):定义函数时写在函数名后括号内的变量,形参前必须有数据类型 int fun(int n) 实际参数(实参):调用
文档评论(0)