gpt4 book ai didi

c++ - 无法更改函数中的值

转载 作者:太空狗 更新时间:2023-10-29 19:49:27 25 4
gpt4 key购买 nike

我开始开发了,抱歉这个新手问题。

我需要创建一个在 2 个变量之间交换值的函数。

我已经写了这段代码,但是vars没有做任何改动,我应该改什么?我的错误是什么?

#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;
}

最佳答案

您需要通过引用传递变量:

void swap_values( int& x, int& y )
{
int z;
z = y;
y = x;
x = z;
}

pass-by-valuepass-by-reference 是主要编程语言中的关键概念。在 C++ 中,除非您指定按引用,否则会发生按值传递

这基本上意味着传递给函数的不是原始变量,而是拷贝。

这就是为什么在函数外部,变量保持不变的原因 - 因为在函数内部,只有拷贝被修改了。

如果您通过引用传递 (int& x, int& y),该函数将对原始变量进行操作。

关于c++ - 无法更改函数中的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8989350/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com