C语言讲义chap函数与宏定义.pptVIP

  • 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.函数调用的一般形式 函数名(实参表); 说明:  对于无参函数,尽管没有“实参表”,但也不得省略括号。  “实参表”中的参数之间用逗号分开。

文档评论(0)

1亿VIP精品文档

相关文档