无参无返回值

  • 语法格式如下: ```c // 函数定义 void 函数名() { 函数体 }

// 函数调用 函数名();

  1. - 函数名是标识符的一种,需要遵循规则
  2. - 函数只需要定义一次,反复调用
  3. - 只定义函数, 不调用函数, 函数永远不会被执行
  4. - 案例需求:
  5. - 编写一个函数,里面实现2个数字相加,并打印相加后的结果
  6. - 示例代码:
  7. ```c
  8. #include <stdio.h>
  9. // 函数定义
  10. void my_add() {
  11. // 实现2个数字相加,并打印相加后的结果
  12. int res = 1 + 2;
  13. printf("res = %d\n", res);
  14. }
  15. int main() {
  16. // 函数调用
  17. my_add();
  18. return 0;
  19. }
  • 执行流程

image.png

有参无返回值

  • 函数参数的作用:增加函数的灵活性
    • 可以根据需求在调用函数时, 通过参数传入不同的数据
  • 语法格式如下: ```c // 函数定义 void 函数名(形参列表) { 函数体 }

// 函数调用 函数名(实参列表);

  1. - 实参和形参的关系:从左往右,一一对应
  2. - 案例需求:
  3. - 编写一个函数,实现2个数相加,2个数通过参数传递
  4. - 示例代码:
  5. ```c
  6. #include <stdio.h>
  7. // 函数定义
  8. void my_add(int a, int b) {
  9. // 实现2个形参相加,并打印相加后的结果
  10. int res = a + b;
  11. printf("%d + %d = %d\n", a, b, res);
  12. }
  13. int main() {
  14. // 函数调用
  15. my_add(10, 20);
  16. return 0;
  17. }
  • 执行流程

image.png

有参有返回值

返回值基本语法

  • 函数返回值的作用:函数外部想使用函数内部的数据
  • 语法格式如下: ```c // 函数定义 返回类型 函数名(形参列表) { 函数体

    return 和返回类型一致的数据(或变量); }

// 函数调用 和返回类型一致的变量 = 函数名(实参列表);

  1. - return是函数的专属关键字,只能用在函数内容
  2. - 案例需求:
  3. - 编写一个函数,实现2个数相加,2个数通过参数传递,返回累加结果给外部使用
  4. - 示例代码:
  5. ```c
  6. #include <stdio.h>
  7. // 函数定义
  8. int my_add(int a, int b) {
  9. // 实现2个形参相加,并返回累加的结果
  10. int res = a + b;
  11. return res;
  12. }
  13. int main() {
  14. // 函数调用
  15. int temp = my_add(10, 20);
  16. printf("temp = %d\n", temp);
  17. return 0;
  18. }
  • 执行流程

image.png

返回值注意点

  • return的作用是结束函数
    • 函数内,return后面的代码不会执行
  • 示例代码 ```c

    include

// 函数定义 void func() { printf(“11111111111111111\n”);

  1. return; // 结束函数,函数内后面代码不会执行
  2. printf("222222222222222222\n");

}

int main() { // 函数调用 func();

  1. return 0;

}

  1. <a name="r7dZN"></a>
  2. # 函数的声明
  3. - 如果函数定义代码没有放在函数调用的前面,这时候需要先做函数的声明
  4. - 所谓函数声明,相当于告诉编译器,函数是有定义的,再别的地方定义,以便使编译能正常进行
  5. - 注意:一个函数只能被定义一次,但可以声明多次
  6. ```c
  7. #include <stdio.h>
  8. // 函数的声明,分号不能省略
  9. // 函数声明的前面可以加extern关键字,也可以不加
  10. // extern int my_add(int a, int b);
  11. int my_add(int a, int b);
  12. // 另一种方式,形参名可以不写
  13. // int my_add(int, int );
  14. int main() {
  15. // 函数调用
  16. int temp = my_add(10, 20);
  17. printf("temp = %d\n", temp);
  18. return 0;
  19. }
  20. // 函数定义
  21. int my_add(int a, int b) {
  22. // 实现2个形参相加,并返回累加的结果
  23. int res = a + b;
  24. return res;
  25. }

函数案例

  • 需求:自定义一个函数,返回2个整数的最大值
  • 示例代码: ```c

    include

// 函数定义 int my_max(int a, int b) { if (a > b) { return a; } else { return b; } }

int main() { // 函数调用 int res = my_max(100, 200); printf(“res = %d\n”, res);

  1. return 0;

} ```