参数传递
- 函数定义时的参数被称为形式参数(简称形参)
- double cylinder (double r, double h);
- 函数调用时的参数被称为实际参数(简称实参)
- volume = cylinder (radius, height);
- 参数传递:实参–形参(单向传递)
- 在参数传递过程中,实参把值赋值给形参
- 形参和实参一一对应:数量一致,类型一致,顺序一致
- 形参:变量,用于接收实参传递过来的值
- 实参:常量、变量或表达式
函数结果返回
- 完成确定的运算,将运算结果返回给主函数
- 函数结果返回的形式
- return 表达式;
- return (表达式)
函数原型声明
只写函数定义中的第一行(函数首部),并以分号结束
函数类型 函数名 (参数表);
double cylinder (double r, double h);
void pyramid (int n);
- 函数必须先定义后调用,将主函数放在被调函数的后面,就像变量先定义后使用一样;
- 如果自定义函数在主调函数的后面,就需要在函数调用前,加上函数原型声明;
- 函数声明:说明函数的类型和参数情况,以保证程序编译时能判断对该函数的调用是否正确
函数调用
输出5之内的数字金字塔
不返回运算结果的函数定义
- 由于函数没有返回结果,函数调用不可能出现在表达式中,通常以独立的调用语句方式,如pyramid(5);
- 不返回结果的函数,在定义、调用、参数传递、函数声明上,思路完全与以前相同,只是函数类型变为void;
- 它适用把一些确定的、相对独立的程序功能包装成函数:
- 主函数通过调用不同的函数,体现算法步骤
- 各步骤的实现由相应函数完成
- 简化主函数结构,以体现结构化程序设计思想。
模块化设计
- 将模块组织成良好的层次系统
- 顶层模块调用其下层模块以实现程序的完整功能;
- 每个下层模块再调用更下层的模块,从而完成程序的一个子功能
- 最下层的模块完成最具体的功能;
- 遵循模块独立性的原则,及模块之间的联系应尽量简单(三要点):
- 模块用函数实现;
- 一个模块只完成一个指定的功能;
- 模块之间只通过带参数的函数进行调用;
结构化编码主要原则
- 经模块化设计后,每一个模块都可以独立编码。编程时应选用顺序、选择和循环三种控制结构
- 对变量、函数、常量等命名时,要见命知其意,有助于对变量含义或函数功能的理解;
- 在程序中增加必要的注释,增加程序的可读性;
- 要有良好的程序视觉组织,利用缩进格式;
- 程序要清晰易懂,语句构造要简单直接;
- 程序要有良好的交互性,输入有提示,输出有说明