- 5
- 0
- 约1.04万字
- 约 40页
- 2021-11-26 发布于广东
- 举报
2021-11-26
1
第 6 章 函数与宏定义
6.1 函数概念
6.2 函数定义的一般形式
6.3 函数参数和函数的值
6.4 函数的调用
6.5 函数的嵌套调用
6.6 函数的递归调用
2021-11-26
2
6.7 局部变量和全局变量
6.8 动态存储变量与静态存储变量
6.9 内部函数和外部函数
6.10 编译预处理
6.11 “文件包含” 处理
6.12 条件编译
2021-11-26
3
6.1 函数概念
在进行程序设计时,程序员总是将复杂的问题进行分解, 化整为零。编写一段小程序就能解决一个小问题,然后将这些小程序拼装起来就能解决非常大而复杂的问题。在 C 中,这些小程序统称为函数。
在 C 中,由系统提供的函数放在函数库中供用户选用,以减少重复编写程序模块的工作量。
所有函数都是平行的,相互独立不能嵌套,但可以相
互调用(main函数不能被其它函数调用)。
C 函数分标准函数(库函数)和自定义函数。
C 函数本身分有参函数和无参函数。
2021-11-26
4
6.2 函数定义的一般形式
1.无参函数的定义形式
类型标识符 函数名( )
{ 说明部分 ;
语句;
}
无参函数一般不需要返回函数值,可以省略类型标识符。
2.有参函数的定义形式
类型标识符 函数名(形式参数表)
形式参数说明;
{ 说明部分 ;
语句;
}
无分号!
无分号!
2021-11-26
5
3.“ 空函数 ”
例: int max(x,y)
int x, y; / 形式参数说明 /
{ int z; / 函数体中的说明部分 /
z=xy ? x : y;
return(z);
}
类型说明符 函数名( )
{ }
“空函数”什么操作也不做。其作用是在此处留一函数的位置,以便将来扩充功能之用。函数名也在将来换取实际的函数名。
这两行可以写成一行:
int max(int x, int y)
2021-11-26
6
6.3 函数参数和函数的值
1.形式参数和实际参数
例6.1 从键盘输入两个数,输出其中较大的一个。
main( )
{ int a, b, c ;
scanf(“%d,%d”, a, b);
c=max(a,b); / a, b为实际参数 /
printf(“Max is %d”,c);
}
max(int x,int y) / x, y为形式参数 /
{
int z;
z=xy ? x : y;
return(z);
}
2021-11-26
7
形参变量在被调用前不占用存储单元;在被调用结束后,形参所占存储单元亦被释放。
实参可以是常量、变量或表达式。
必须指定形参类型,且必须与实参的类型一致。
实参对形参的数据传递是“值传递”。即单向传递,不能逆传。
可以在形参表中直接说明形参类型。如:
int max(int x, int y);
float fun(int a[10], int n);
注意:
2021-11-26
8
函数的返回值是通过return语句获得的。当不需返回函数值时,可省去return语句。
return语句的后面可以有括号,也可以没有。如:
return z ; return(z);
return语句的后面可以是变量,也可以是表达式。如:
return(x y ? x : y);
return语句返回值的类型应与该函数的返回值类型一致。否则以函数返回值
类型为准。
2.函数的返回值
2021-11-26
9
若函数中没有return语句,则该函数被调用后也会带回不确定的值。如:main( )
{ int a, b, c ;
a=printstar( );
b=print_message( );
c=printstar( );
printf(“%d,%d,%d\n”,a,b,c);
}
输出的a, b, c的值将是随机值。
为了明确表示不需要函数返回值,可以用“void”定义函数为“无类型”。此时,不得使用a=printstar( )之类的语句。
凡不需要返回值的函数,一般均定义为“void”类型。
2021-11-26
10
1.函数调用的一般形式
函数名(实参表);
说明:
对于无参函数,尽管没有“实参表”,但也不得省略括号。
“实参表”中的参数之间用逗号分开。
您可能关注的文档
- 土地利用规划——农业用地规划.ppt
- 土力学地基基础课程讲解第二章辅导.ppt
- 网络信息检索三网络融入生活、网络融入学习.ppt
- 物理《摩擦力》精品讲义新人教版必修.ppt
- 吸收设备吸收工艺烟气脱硫.ppt
- 现代电子测量技术应用绪论.ppt
- 现代通信基本原理和技术应用第09章差错控制编码.ppt
- 信息安全基本原理和技术应用之对称加密技术应用.ppt
- 信息论和编码ch总复习.ppt
- 信息论算术编码和LZ编码.ppt
- 2026年医疗器械行业监管政策及市场需求深度报告.docx
- 工业机器人核心部件国产化2025年技术创新与产业升级路径研究.docx
- 工业互联网平台安全保障2025年技术升级可行性探讨.docx
- 冷链物流智能化改造升级项目2025年,技术创新在跨境电商中的应用前景报告.docx
- 2025年文化创意产业人才培训基地文化创意产业人才政策扶持可行性研究.docx
- 2026年无人驾驶技术在园区无人服务创新报告.docx
- 2026年医疗器械行业政策影响及市场需求评估分析报告.docx
- 2026年基于大数据的医疗影像智能诊断报告.docx
- 2026年纳米材料电子应用报告.docx
- 2026年绿色建筑行业发展趋势创新报告.docx
最近下载
- 银行消防演练预案银行消防应急演练方案.docx VIP
- 聚酰胺纤维染色用染料亲和聚酰胺纤维染色用染料亲和型匀染剂.PDF VIP
- 数据保护安全解决方案模板.doc VIP
- TCESA-2024-075《类脑计算芯片测试方法》.pdf VIP
- 2025最新小学五年级语文上册“病句修改”专项突破训练.docx
- 上海能做危险品国际运输的货代,一般要满足哪些硬性条件?.docx VIP
- DB31T 1455-2023 青少年社会工作服务实施指南.pdf VIP
- 银行消防演练预案银行消防应急演练方案.doc VIP
- 区域性矿山隐蔽致灾因素普查报告编制工作方案投标文件(技术方案).doc
- 计量支付监理实施细则.docx VIP
原创力文档

文档评论(0)