当前位置:首页C++程序设计 > 正文

C++中函数传值参数与传引用参数·

作者:野牛程序员:2023-02-24 15:31:03C++程序设计阅读 2621

在C++中,函数传递参数的方式主要有两种:传值参数和传引用参数。

  1. 传值参数

传值参数是指在函数调用时,将实参的值复制一份传递给形参。函数在执行时,使用的是形参的值,不会改变实参的值。例如:

void func(int x)
{
    x = x + 1;
    cout << "x in func: " << x << endl;
}

int main()
{
    int a = 10;
    cout << "a before func: " << a << endl;
    func(a);
    cout << "a after func: " << a << endl;
    return 0;
}

在这个例子中,我们定义了一个函数func(int x),它的形参x是一个整型变量。在主函数中,我们定义了一个整型变量a,并分别输出了它的值。然后我们调用了函数func(a),在函数中修改了x的值,并输出了结果。最后在主函数中,我们再次输出a的值。运行程序后,可以看到输出结果为:

a before func: 10
x in func: 11
a after func: 10

可以看到,虽然在函数中修改了形参x的值,但实参a的值并没有发生改变,这是因为在函数调用时,实参的值被复制到了形参中,在函数执行时,修改的是形参的值而不是实参的值。

传值参数的优点是简单、直观,容易理解和使用。缺点是当传递的实参较大时,需要进行复制,会造成一定的时间和空间开销。

  1. 传引用参数

传引用参数是指在函数调用时,将实参的地址传递给形参,形参可以直接访问实参所在的内存地址,从而修改实参的值。例如:

void func(int &x)
{
    x = x + 1;
    cout << "x in func: " << x << endl;
}

int main()
{
    int a = 10;
    cout << "a before func: " << a << endl;
    func(a);
    cout << "a after func: " << a << endl;
    return 0;
}

在这个例子中,我们将函数的形参x声明为一个整型引用,表示它是一个指向实参的引用。在主函数中,我们调用函数func(a),函数中修改了x的值,并输出了结果。最后在主函数中,我们再次输出a的值。运行程序后,可以看到输出结果为:

a before func: 10
x in func: 11
a after func: 11

可以看到,虽然在函数中修改的是形参x的值,但实参a的值也随之改变了,这是因为形参x是实参a的引用,可以直接访问实

野牛程序员教少儿编程与信息学奥赛-微信|电话:15892516892
野牛程序员教少儿编程与信息学竞赛-微信|电话:15892516892
相关推荐

最新推荐

热门点击