我开始发展,抱歉这个新手问题.
我需要创建一个在2个变量之间交换值的函数.
我已经编写了这段代码,但是没有对变量进行任何更改,我应该更改什么?我的错是什么?
#include <iostream>
using namespace std;
void swap_values( int x, int y);
int main(void) {
int a,b;
a = 2;
b = 5;
cout << "Before: " << a << " " << b << endl;
swap_values( a,b );
cout << "After: " << a << " " << b << endl;
}
void swap_values( int x, int y ){
int z;
z = y;
y = x;
x = z;
}
Run Code Online (Sandbox Code Playgroud)
Luc*_*ore 10
您需要通过引用传递变量:
void swap_values( int& x, int& y )
{
int z;
z = y;
y = x;
x = z;
}
Run Code Online (Sandbox Code Playgroud)
pass-by-value并且pass-by-reference是主要编程语言中的关键概念.在C++中,除非您指定by-reference,否则pass-by-value会发生.
它基本上意味着它不是传递给函数的原始变量,而是副本.
这就是为什么在函数之外,变量保持不变 - 因为在函数内部,只修改了副本.
如果通过reference(int& x, int& y)传递,则该函数对原始变量进行操作.