目录
- 函数的定义
- 函数定义的语法
- 代码示例
- 函数的声明
- 函数声明的语法
- 代码示例
- 函数的调用
- 函数调用的语法
- 代码示例
- 函数的参数
- 形式参数
- 实际参数
- 参数传递方式
- 值传递
- 地址传递
- 函数的返回值
- 返回值类型
- 返回值的使用
- 递归函数
- 递归函数的组成
- 示例:计算阶乘
- 函数的作用域
- 全局函数
- 静态函数
- 内联函数
- 内联函数的定义
- 函数指针
- 函数指针的定义
- 代码示例
- 可变参数函数
- 示例:计算多个整数的和
- 补充内容
- C 语言不支持默认参数
- 数组作为函数参数
- main 函数的命令行参数
- 函数原型与头文件
- 函数指针的应用(回调函数)
- 可变参数的注意事项
- 递归与迭代的选择
- 内联函数的注意事项
- 函数的副作用
- 函数的链接属性
- 总结
函数的定义
函数是完成特定任务的独立代码块,有助于代码的模块化和复用。
函数定义的语法
返回值类型 函数名(参数列表) {函数体;return 返回值; // 如果返回值类型为 void,则不需要 return 语句,或者使用 return;
}
- 返回值类型:指定函数返回的数据类型,如 int、float、char 等。如果函数不返回任何值,使用 void 类型。
- 函数名:是函数的标识符,遵循标识符命名规则。
- 参数列表:是函数接收的输入参数,多个参数用逗号分隔。每个参数由数据类型和参数名组成。如果函数不接收参数,可以使用 void 或空括号。
- 函数体:包含实现函数功能的代码。
- return 语句:用于返回函数的结果。如果返回值类型为 void,可以省略 return 语句,或者使用 return; 来提前结束函数。
代码示例
// 定义一个函数,用于计算两个整数的和
int add(int a, int b) {int result = a + b;return result;
}
函数的声明
函数声明用于告诉编译器函数的名称、返回值类型和参数列表,以便在调用函数之前进行类型检查。
函数声明的语法
返回值类型 函数名(参数列表);
代码示例
// 函数声明
int add(int a, int b);int main() {int sum = add(3, 5);return 0;
}// 函数定义
int add(int a, int b) {return a + b;
}
函数的调用
调用函数就是执行函数体中的代码,并可以传递参数和接收返回值。
函数调用的语法
函数名(参数列表);
代码示例
#include <stdio.h>// 函数定义
int add(int a, int b) {return a + b;
}int main() {int num1 = 3, num2 = 5;// 函数调用int sum = add(num1, num2);printf("The sum is: %d\n", sum);return 0;
}
函数的参数
函数的参数分为形式参数和实际参数。
形式参数
形式参数是函数定义中声明的参数,用于接收调用函数时传递的值。
// 形式参数 a 和 b
int add(int a, int b) {return a + b;
}
实际参数
实际参数是函数调用时传递给函数的值。
int main() {int num1 = 3, num2 = 5;// 实际参数 num1 和 num2int sum = add(num1, num2);return 0;
}
参数传递方式
值传递
将实际参数的值复制给形式参数,函数内部对形式参数的修改不会影响实际参数。
#include <stdio.h>void swap(int a, int b) {int temp = a;a = b;b = temp;
}int main() {int x = 3, y = 5;swap(x