- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第4章函数与预处理详解
第 四 章
函数与预处理;第四章 函数与编译预处理;C/C++ 源程序结构;模块划分
像组织机构一样,要做到:分工有序、各司其职
按功能划分函数 —— 分治策略(分解 + 求解)
大问题→小问题→更小问题→... →可简单求解:函数
层层分解:自顶向下、从整体到局部、从大到小;函数(function)
源程序的组成单位 —— 函数
一个cpp:由若干个函数组成
主函数: main(),程序入口
其他函数:自编函数 + 库函数
函数调用:主函数不能被调用,可调用其他
程序结束:主函数开始 → 主函数结束
库函数
VC++ 提供的、已编写好的函数,放在库中
用户(我们)可以直接调用,不必重复编写
自编函数
我们自己编写的函数 —— 我们的任务!;定义函数 编写函数功能,函数的实现
返回值类型 函数名( 形式参数 )
{ // 函数体开始
... ; // 若干语句,一般不超过50行
} // 函数体结束
【例】求两个整数中的最大值
int myMax( int x, int y ) // 多个参数用逗号分隔
{
int m = xy ? x : y ;
return m; // m 类型:int
} ;先定义,后使用(调用)
函数名( 实参 ) 实参:常量、变量、表达式均可;定义函数;函数定义的位置和顺序:C++ 没有规定,但要满足
先定义、后使用(调用)
—— 编译器从上到下逐句编译,未定义的使用:语法错
什么情况下,函数必须提前说明(声明)
先调用、后定义 例如 main 在其他函数前面
在调用某函数前,用它的函数原型声明 理由
—— 告诉编译器:该函数名及特征
函数定义 = 函数头 + 函数体
函数原型 ≈ 函数头:
void ShowMax( int m, int n ); // 后面有分号
参数变量名 m , n 可省略
void ShowMax( int , int );;参数的传递方式 ;函数无返回值
return ; // 可以省略
函数的最后一条语句执行完毕后终止,返回到调用处,程序从调用处继续执行
函数有返回值
必须用 return 语句返回值到调用处,语法:
return 表达式 ;
一个函数只能有一个返回值(不能返回多个值)
函数是如何将值返回给调用处的?
自动创建一个临时变量保存值,将其返回给调用处;【例】求10~1000内所有 x,满足:
x, x2, x3 都是回文数 正反读都一样;例:函数设计与使用;形参可有默认值
给形参指定值 默认值 ,函数调用时实参可省略 用默认值
void showArea( float length=1.0, float width=2.0 );
void main()
{ showArea( ); // 缺2个实参
showArea(10.); // 缺1个实参
showArea(20.0, 3.5); // 覆盖形参缺省值
}
void showArea( float length, float width )
{ coutarea=length*widthendl; };形参的默认值;引用 ( reference )
给一个变量已定义取别名 允许多个别名
变量类型 变量别名 变量名
操作引用:就是操作被引用的变量
定义引用:必须指明被引用的变量 初始化
int x, y, z = x; // 变量x的别名z
y = 200; z = y; // z 就是 x
z = y; // ERROR
int z = y; // ERROR
参数传递:单向传值、引用实现双向传递;引用作为形参;局部变量 绝大多数情况使用
生存期(诞生 → 死亡)
诞生:占有内存单元,定义/创建变量时
死亡:内存中不存在,定义它的语句块{...} 执行完毕
作用域(可见性)
变量在内存中存在,但并非谁都能用它
在定义它的 {...} 内能使用它
其外面,它已经死亡
操作系统把它从内存删除了
简单例子:;void main( )
{
int s; // 创建:开内存空间
for( int i=0; i10; i++)
{
s += i; cout i;
}
cout s;
//cout i; //error
};全局变量
生存期
定义:任何函数体包括main() { ... } 外面的任何位置
诞生:本程序开始运行时,并非在
您可能关注的文档
最近下载
- TZS 0678—2025《生物安全实验室工作人员本底血清样本管理规范》(水印版).pdf VIP
- 2025年工会基础知识考试题库及参考答案(通用版).pptx VIP
- 抗菌药物的合理使用课件(共37张PPT).pptx VIP
- 急危重症患者护理抢救流程与规范.pptx VIP
- 平衡梁组件的承压检测装置.pdf VIP
- 2025年最新工会基础知识考试题库及参考答案(通用版).pptx VIP
- 44-无机复合聚苯不燃保温板应用技术规程T_CIEEMA002-2020.pptx VIP
- 供货方案及质量保证措施 .docx VIP
- 殡葬领域突出问题专项整治行动实施方案.docx VIP
- T_ACEF 207—2025(工业有机废气收集系统技术规范).pdf
文档评论(0)