C++中函数传值参数与传引用参数·
作者:野牛程序员:2023-02-24 15:31:03C++程序设计阅读 2621
在C++中,函数传递参数的方式主要有两种:传值参数和传引用参数。
传值参数
传值参数是指在函数调用时,将实参的值复制一份传递给形参。函数在执行时,使用的是形参的值,不会改变实参的值。例如:
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
的值并没有发生改变,这是因为在函数调用时,实参的值被复制到了形参中,在函数执行时,修改的是形参的值而不是实参的值。
传值参数的优点是简单、直观,容易理解和使用。缺点是当传递的实参较大时,需要进行复制,会造成一定的时间和空间开销。
传引用参数
传引用参数是指在函数调用时,将实参的地址传递给形参,形参可以直接访问实参所在的内存地址,从而修改实参的值。例如:
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

- 上一篇:C++函数定义与调用,形参与实参
- 下一篇:C++中常量与变量的作用范围