第三章:C++中的函数

简介: 第三章:C++中的函数

第三章:C++中的函数

C++中的函数

在C++中,函数是用于组织和重用代码的重要工具。函数可以将一段特定功能的代码封装起来,并通过提供输入参数和返回值来与其他代码进行交互。本文将深入讨论C++中的函数,包括函数定义、函数调用、函数参数和返回值等方面,并通过丰富的代码示例和实际案例来帮助您更好地使用函数。

函数定义和调用

函数定义包括函数头和函数体。函数头指定了函数的名称、参数列表和返回类型。函数体是函数的实际执行代码。

下面是一个简单的函数定义和调用的示例:

// 函数定义
int add(int a, int b) {
    return a + b;
}
// 函数调用
int result = add(3, 4);
cout << "结果是:" << result << endl;

上述代码中,我们定义了一个名为add的函数,它接受两个整数作为参数,并返回它们的和。然后,在主程序中调用add函数,并将结果赋给变量result。最后,输出结果为"结果是:7"。

函数参数

函数可以接受零个或多个参数。参数是传递给函数的值或变量,函数可以使用这些参数执行特定的操作。在函数定义中,参数由参数列表表示,并且每个参数都有一个类型和一个名称。

下面是一个例子,演示了带有多个参数的函数定义和调用:

int multiply(int x, int y) {
    return x * y;
}
int result = multiply(5, 3);
cout << "结果是:" << result << endl;

上述代码中,我们定义了一个名为multiply的函数,它接受两个整数作为参数,并返回它们的乘积。然后,在主程序中调用multiply函数,并将结果赋给变量result。最后,输出结果为"结果是:15"。

函数返回值

函数可以返回一个值来提供计算结果或执行状态。在函数定义中,通过指定返回类型来指示函数的返回值类型。如果函数没有返回值,可以使用void作为返回类型。

下面是一个例子,展示了带有返回值的函数定义和调用:

// 返回两个整数中的较大值
int findMax(int x, int y) {
    if (x > y) {
        return x;
    } else {
        return y;
    }
}
int max = findMax(10, 7);
cout << "最大值是:" << max << endl;

上述代码中,我们定义了一个名为findMax的函数,它接受两个整数作为参数,并返回其中较大的值。然后,在主程序中调用findMax函数,并将结果赋给变量max。最后,输出结果为"最大值是:10"。

实际案例

让我们看一个更复杂的实例,结合多个函数和控制流程:

// 判断一个数是否为素数
bool isPrime(int num) {
    if (num <= 1) {
        return false;
    }
    for (int i = 2; i < num; i++) {
        if (num % i == 0) {
            return false;
        }
    }
    return true;
}
// 打印小于给定数值的所有素数
void printPrimes(int limit) {
    cout << "小于" << limit << "的素数是:";
    for (int i = 2; i < limit; i++) {
        if (isPrime(i)) {
            cout << i << " ";
        }
    }
    cout << endl;
}
// 调用函数打印小于10的所有素数
printPrimes(10);

上述代码中,我们定义了两个函数:isPrime和printPrimes。函数isPrime判断一个数是否为素数,并返回布尔值。函数printPrimes根据给定的限制条件打印小于该数值的所有素数。最后,在主程序中调用printPrimes(10)来打印小于10的所有素数。

输出结果为"小于10的素数是:2 3 5 7"。

相关文章
|
2月前
|
程序员 C++ 容器
在 C++中,realloc 函数返回 NULL 时,需要手动释放原来的内存吗?
在 C++ 中,当 realloc 函数返回 NULL 时,表示内存重新分配失败,但原内存块仍然有效,因此需要手动释放原来的内存,以避免内存泄漏。
|
2月前
|
存储 前端开发 C++
C++ 多线程之带返回值的线程处理函数
这篇文章介绍了在C++中使用`async`函数、`packaged_task`和`promise`三种方法来创建带返回值的线程处理函数。
83 6
|
2月前
|
C++
C++ 多线程之线程管理函数
这篇文章介绍了C++中多线程编程的几个关键函数,包括获取线程ID的`get_id()`,延时函数`sleep_for()`,线程让步函数`yield()`,以及阻塞线程直到指定时间的`sleep_until()`。
45 0
|
2月前
|
编译器 C语言 C++
C++入门3——类与对象2-2(类的6个默认成员函数)
C++入门3——类与对象2-2(类的6个默认成员函数)
39 3
|
2月前
|
编译器 C语言 C++
详解C/C++动态内存函数(malloc、free、calloc、realloc)
详解C/C++动态内存函数(malloc、free、calloc、realloc)
389 1
|
2月前
|
存储 编译器 C++
C++入门3——类与对象2-1(类的6个默认成员函数)
C++入门3——类与对象2-1(类的6个默认成员函数)
51 1
|
2月前
|
安全 编译器 C++
【C++篇】C++类与对象深度解析(三):类的默认成员函数详解
【C++篇】C++类与对象深度解析(三):类的默认成员函数详解
26 3
|
2月前
|
编译器 C语言 C++
C++入门6——模板(泛型编程、函数模板、类模板)
C++入门6——模板(泛型编程、函数模板、类模板)
70 0
C++入门6——模板(泛型编程、函数模板、类模板)
|
2月前
|
存储 编译器 C++
【C++】掌握C++类的六个默认成员函数:实现高效内存管理与对象操作(二)
【C++】掌握C++类的六个默认成员函数:实现高效内存管理与对象操作
|
3月前
|
编译器 C++
【C++核心】函数的应用和提高详解
这篇文章详细讲解了C++函数的定义、调用、值传递、常见样式、声明、分文件编写以及函数提高的内容,包括函数默认参数、占位参数、重载等高级用法。
31 3