目录
1. 函数的定义和声明
- 函数定义包括函数名、返回类型、参数列表和函数体。
- 函数声明只需提供函数名、返回类型和参数列表,用于告诉编译器函数的存在。
返回类型 函数名(参数列表) {
// 函数体
// 可选:返回语句
}
2. 函数的调用
- 函数调用使用函数名和传递给函数的实参。
- 在调用函数之前,必须先声明或定义该函数。
int sum(int a, int b); // 函数声明
int result = sum(3, 4); // 函数调用,将返回值保存在 result 中
3. 函数的返回值
- 函数可以有返回值,也可以没有返回值(返回类型为
void
)。 - 使用
return
语句将结果返回给函数调用者。
int sum(int a, int b) {
return a + b; // 返回 a 和 b 的和
}
4. 函数的参数
- 函数参数是在函数定义或声明中列出的值,用于接收传递给函数的数据。
- 参数可以是基本数据类型(如整型、浮点型等)或复合数据类型(如数组、结构体等)。
- 参数可以有默认值,当调用函数时未传递对应参数时,将使用默认值。
int sum(int a, int b) {
return a + b; // 返回 a 和 b 的和
}
int result = sum(3, 4); // 调用 sum 函数,传入参数 3 和 4
5. 形参和实参
- 形参是函数定义时用于接收参数的变量,如上面的 `a` 和 `b`。
- 实参是函数调用时传递给函数的具体数值,如上面的 `3` 和 `4`。
6. 函数的重载
- 函数重载是指在同一个作用域中,可以有多个同名函数,但它们的参数类型、参数个数或参数顺序不同。
- 编译器根据调用时提供的参数信息来确定具体调用哪个函数。
7. 递归函数
- 递归函数是指函数调用自身。
- 递归函数通常包含递归出口(终止条件),以避免无限递归。
8. 函数的返回类型
- 函数可以有不同的返回类型,如 `int`、`float`、`void` 等。
- 返回类型为 `void` 表示函数没有返回值。
9. 内联函数
- 内联函数是一种编译器优化技术,用于减少函数调用的开销。
- 使用 `inline` 关键字声明内联函数。
10. 函数指针
- 函数指针是指向函数的指针变量。
- 可以通过函数指针来调用特定的函数。
11. 函数参数传递方式
- 值传递:将实参的值复制给形参,在函数内部修改形参的值不会影响实参的值。
- 引用传递:将实参的引用(地址)传递给形参,对形参的修改会影响实参的值。
- 指针传递:将实参的指针传递给形参,形参接收实参内存地址,可以修改实参的值。