C++函数的定义、调用和参数传递

最近学习到了一个非常重要的概念——函数。函数在编程中扮演着至关重要的角色,它可以让我们的代码更加模块化、清晰,也方便了代码的复用。在这篇文章中,我们将深入探讨C++函数的基本概念,包括如何定义函数、如何调用函数以及不同的参数传递方式。

函数的定义

在C++中,函数的定义包括函数的返回类型、函数名、参数列表和函数体。下面是一个简单的例子:

#include <iostream>
int add(int a, int b) {return a + b;}
int main() {
int result = add(3, 4);
std::cout << "3 + 4 = " << result << std::endl;
return 0;
}

在这个例子中,我们定义了一个名为add的函数,它接受两个整数参数,并返回它们的和。在main函数中,我们调用了add函数,并将结果赋给变量result,然后将结果输出到控制台。

函数的调用

函数的调用是通过函数名和参数列表实现的,在上面的例子中,调用add函数的语句是add(3, 4)。在调用函数时,实际参数(传递给函数的值)将被传递给形式参数(函数定义中声明的参数),并在函数体中使用。

参数传递

C++支持多种参数传递方式,包括值传递、引用传递和指针传递。这些方式影响了函数对参数的处理方式,下面我将列举出这些传递方式的特点。

  1. 值传递 在值传递中,函数接受参数的值,而不是参数本身。这意味着函数在执行时使用的是参数的副本,不影响原始数据。
#include <iostream>
void square(int num) {
num = num * num;
}
int main() {
int number = 5;
square(number);
std::cout << "Original number: " << number << std::endl;
return 0;
}

在这串代码中,square函数接受一个整数参数并计算其平方,但由于是值传递,number变量的值不会受到影响。

2.引用传递 引用传递允许函数直接访问并修改传递给它的参数。这样可以有效地传递大型数据结构,避免了值传递的性能开销。

#include <iostream>
void doubleValue(int& num) {
    num = num * 2;
}
int main() {
    int value = 3;
    doubleValue(value);
    std::cout << "Doubled value: " << value << std::endl;
    return 0;
}

在这串代码中,doubleValue函数接受一个整数引用作为参数,并将其值加倍。调用这个函数后,value变量的值被修改。

3.指针传递 指针传递与引用传递类似,允许函数通过指针直接访问和修改参数。指针传递需要注意空指针的情况。

#include <iostream>
void tripleValue(int* ptr) {
    if (ptr != nullptr) {
        *ptr = *ptr * 3;
    }
}
int main() {
    int data = 4;
    int* pointer = &data;
    tripleValue(pointer);
    std::cout << "Tripled value: " << data << std::endl;
    return 0;
}

在这串代码中,Tripled value函数接受一个整数指针作为参数,并通过指针修改了原始数据。

#C++##函数传参#
全部评论

相关推荐

洒脱的馒头:校友看我帖子,这种不面试或者面试简单的,都是进去当牛马的。更差的可能一两周,觉得你代码能力不行就把你开除,反正他招人成本低
点赞 评论 收藏
分享
01-02 00:50
三峡大学 Java
程序员牛肉:这简历一出手就离失业不远了。 作为一家公司来讲,我如果要招日常实习生,那我对实习生最基本的要求就是要能干活,毕竟你就待三四个月,谁会留心培养你? 那么除了院校之外,最重要的就是项目和实习了。没有实习的话项目就好好搞。 但是你说你这个项目吧:课程作业管理系统和TMS运输管理系统。这两个基本就和闹着玩差不多。 你作为一个想要应聘Java开发实习生的人,对后端的理解还仅仅停留在:“使用mapper和sql映射”,“使用SQL进行多表调用”,“基于MySQL简历表结构”,“基于Spring boot完成CURD操作”这种玩具上......... 找不到后端实习的
点赞 评论 收藏
分享
评论
点赞
1
分享

创作者周榜

更多
牛客网
牛客企业服务