Bootstrap

c语言基础:函数

一、什么是函数?

1.1 生活中的函数

想象你有一个榨汁机:

  • 输入:苹果、橙子 ➡️

  • 处理:榨汁 ➡️

  • 输出:混合果汁

函数就像这个榨汁机,帮我们把输入变成想要的输出!

1.2 程序中的函数

✅ 重复代码打包 ➡️ 随用随取
✅ 复杂程序分解 ➡️ 分块解决
✅ 代码维护 ➡️ 修改一处即可

二,函数语法

// 函数定义模板
返回值类型 函数名(参数列表) {
    // 函数体(具体操作)
    return 返回值; // 不是所有函数都需要
}

int add(int num1, int num2) { // 两数相加函数
    int result = num1 + num2;
    return result; // 返回计算结果
}
  • 🟢 返回值类型:int(返回整数)

  • 🔵 函数名:add(见名知意)

  • 🟠 参数:int num1, int num2(两个整数输入)

  • 🟣 函数体:具体计算过程

  • 🔴 return:返回计算结果

三、手把手创建第一个函数

        

// 函数声明(提前告知编译器)
float rectangle_area(float length, float width); 

int main() {
    float my_area = rectangle_area(5.0, 3.0);
    printf("面积是:%.2f", my_area);
    return 0;
}

// 函数定义
float rectangle_area(float length, float width) {
    return length * width; // 直接返回计算结果
}

必须知道的注意事项

  1. 函数在main()之后定义时,必须提前声明

  2. 函数命名建议:动词+名词(如:calculateArea)

  3. 参数可以是0个或多个,用逗号分隔

四、函数的七十二变用法

void sayHello() { // void表示没有返回值
    printf("你好呀,编程新人!\n");
}
void printStar(int count) {
    for(int i=0; i<count; i++){
        printf("★");
    }
    printf("\n");
}
// 使用:printStar(5); 输出★★★★★

// 多参数示例
void createUser(char name[20], int age, float height) {
    printf("新建用户:%s,年龄%d,身高%.1fcm", name, age, height);
}

五、新手常见翻车现场

        

// 错误1:忘记声明函数
int main() {
    greet(); // 编译器懵逼:这是啥?
    return 0;
}

void greet() { printf("Hi"); }

// 错误2:返回值类型不符
int add() {
    return 3.14; // 说好返回int,却给小数
}



void swap(int a, int b) { // 这样交换是无效的!
    int temp = a;
    a = b;
    b = temp;
}
// 正确方法需要用到指针(后续学习)

六、总结

  1. 先声明后使用(或把定义放main前面)

  2. 参数类型要匹配(int参数不能传float)

  3. 返回值类型要一致(声明返回int就别return小数)

  4. 单一职责原则(一个函数只做一件事)

  5. 下期预告:函数的进阶用法

;