9.1 函数的定义与调用

9.1.1 程序:计算平均值

  1. #include <stdio.h>
  2. float ave(float a,float b);
  3. int main()
  4. {
  5. float a = 5.0;
  6. float b = 2.0;
  7. a = ave(a,b);
  8. printf("%.2f",a);
  9. }
  10. float ave(float a,float b)
  11. {
  12. return (a+b)/2;
  13. }
  14. // 输出
  15. 3.50

9.1.2 倒数计时

  1. #include <stdio.h>
  2. #include <windows.h>
  3. void Countdown(int a);
  4. int main()
  5. {
  6. for(int j=10;j>0;j--)
  7. {
  8. Countdown(j);
  9. // Sleep(DWORD dwMilliseconds) 是一个存在于
  10. // windows.h 中的延时函数,其参数是毫秒
  11. // 注意 Sleep 是大写
  12. Sleep(1000);
  13. }
  14. }
  15. void Countdown(int a)
  16. {
  17. printf("%d\n",a);
  18. }
  19. // 输出(延时效果)
  20. 10
  21. 9
  22. 8
  23. 7
  24. 6
  25. 5
  26. 4
  27. 3
  28. 2
  29. 1

9.1.5 函数调用

void 类型的函数调用是语句,非 void 类型的函数调用表达式,存储在变量中,或者进行测试等

  1. // void
  2. print_count(i);
  3. // 非 void 的用处很多
  4. avg = average(x,y);

9.2 函数声明

我们既可以把其他函数放在 main 之前,也可以放在 main 之后,但是放在 main 之后需要对其他函数进行声明,否则在程序进行到 main 函数时(main 的某一步读取你的函数)会找不到你的函数。

  1. // 其他函数放在 main 之前
  2. #include <stdio.h>
  3. float ave(float a,float b)
  4. {
  5. return (a+b)/2;
  6. }
  7. int main()
  8. {
  9. float a = 5.0;
  10. float b = 2.0;
  11. a = ave(a,b);
  12. printf("%.2f",a);
  13. }
  14. // 输出
  15. 3.50
  16. // 其他函数放在 main 之后,需要声明
  17. #include <stdio.h>
  18. // 这就是函数的声明,声明的函数参数依旧是形式参数
  19. float ave(float a,float b);
  20. int main()
  21. {
  22. float a = 5.0;
  23. float b = 2.0;
  24. a = ave(a,b);
  25. printf("%.2f",a);
  26. }
  27. float ave(float a,float b)
  28. {
  29. return (a+b)/2;
  30. }
  31. // 输出
  32. 3.50

9.3 实际参数

9.3.2 数组作为实际参数

  1. 由于 C 语言的特性,数组作为实际参数通常可以不说明数组的长度,而且通常的做法是把数组的长度额外的提供出来
  1. #include <stdio.h>
  2. int sum(int a[],int len);
  3. int main()
  4. {
  5. int a[] = {1,2,3,4,5};
  6. // 在传递数组实参的时候,只写数组名,不加 []
  7. int b = sum(a,5);
  8. printf("%d ",b);
  9. }
  10. int sum(int a[],int len)
  11. {
  12. int sum=0;
  13. for(int i=0;i<len;i++)
  14. {
  15. sum+=a[i];
  16. }
  17. }
  18. // 输出
  19. 5

9.4 return 语句

  1. #include <stdio.h>
  2. int main()
  3. {
  4. return 0;
  5. int a[] = {1,2,3,4,5};
  6. int b = a[1];
  7. printf("%d ",b);
  8. }
  9. // 无输出,return 语句可以立即返回函数(结束),不再进行其他的步骤

9.5 程序终止

除了使用 return,还可以使用 stdlib.h 中的 exit 语句,其中 EXIT_SUCESS 和 EXIT_FAILUER 是定义在其中的宏