函数 是C++ 代码模块化的基础。
函数有以下作用:
语法:
返回类型 函数名(参数列表) {
// 函数体
return 返回值; // 如果返回类型是 void,则不需要 return
}
注意:
int
、double
、void
)。return
语句:返回函数执行的结果(void
类型的函数可以省略)。函数的完整使用分为声明、定义和调用三部分:
main()
之前或头文件)。示例:求两个数的和
#include
using namespace std;
// 1、 函数声明(可选,但如果定义在 main() 之后,则必须声明)
int add(int a, int b);
int main() {
// 3、 函数调用
int result = add(10, 20);
cout << "sum = " << result << endl;
system("pause");
return 0;
}
// 2、 函数定义
int add(int a, int b) {
return a + b;
}
注意:
int add(int a, int b);
是函数声明,也称函数原型,用于提前告诉编译器该函数的存在。add(10, 20);
是函数调用,执行 add
函数内容并返回计算结果。return a + b;
返回计算结果。作用:
传递变量的副本,不影响原数据。
示例:
#include
using namespace std;
void modify(int x)
{
x = 100; // 仅修改副本,不影响原变量
}
int main() {
int a = 10;
modify(a);
cout << "a = " << a << endl; // 输出 a = 10(未修改)
system("pause");
return 0;
}
作用:
传递指向变量的指针,可修改数据。
示例:
#include
using namespace std;
void modify(int* x)
{
*x = 100; // 通过指针修改值
}
int main() {
int a = 10;
modify(&a);
cout << "a = " << a << endl; // 输出 a = 100(已修改)
system("pause");
return 0;
}
作用:
传递变量的引用,可修改原数据。
示例:
#include
using namespace std;
void modify(int& x)
{
x = 100; // 直接修改原变量
}
int main() {
int a = 10;
modify(a);
cout << "a = " << a << endl; // 输出 a = 100(已修改)
system("pause");
return 0;
}
方式 | 是否修改原值 | 适用场景 |
---|---|---|
值传递 | ❌ | 仅需读取数据,不修改原数据 |
指针传递 | ✅ | 处理动态内存或 nullptr |
引用传递 | ✅ | 需修改数据,避免拷贝开销,不能处理 nullptr |
函数提供默认参数的规则:
=
右侧的值)。示例:
#include
using namespace std;
void greet(string name = "Guest") // 默认参数
{
cout << "Hello, " << name << "!" << endl;
}
int main() {
greet(); // 输出:Hello, Guest!
greet("Alice"); // 输出:Hello, Alice!
system("pause");
return 0;
}
重载的规则:
同名函数,但参数类型或个数不同。
示例:
#include
using namespace std;
// 重载函数
int add(int a, int b) // int 版本
{
return a + b;
}
double add(double a, double b) // double 版本
{
return a + b;
}
int main() {
cout << add(10, 20) << endl; // 调用 int 版本
cout << add(3.5, 2.5) << endl; // 调用 double 版本
system("pause");
return 0;
}
注意:
作用:
函数自己调用自己,用于分治算法(如阶乘、斐波那契)。
示例:
#include
using namespace std;
// 计算输入整数的阶乘
int factorial(int n)
{
if (n == 0) // 递归终止条件
return 1;
return n * factorial(n - 1);
}
int main() {
cout << factorial(5) << endl; // 输出 120
system("pause");
return 0;
}
inline
)作用:
示例:
#include
using namespace std;
// 内联函数,计算输入数的平方
inline int square(int x)
{
return x * x;
}
int main() {
cout << square(5) << endl; // 输出 25
system("pause");
return 0;
}
main()
函数作用:
main()
函数是 程序的入口,必须返回 int
(标准 C++ 要求)。return 0;
表示正常结束,非 0 代表错误代码。示例:
#include
using namespace std;
int main() {
cout << "Hello, C++!" << endl;
return 0; // 结束程序
}
作用:
指向函数的指针,用于回调、动态函数调用。
示例:
#include
using namespace std;
void hello()
{
cout << "Hello, C++!" << endl;
}
int main() {
void (*funcPtr)() = hello; // 声明函数指针
funcPtr(); // 通过指针调用函数
system("pause");
return 0;
}