c++ - 在函数 c++ 中更改给定的函数参数

标签 c++ function pointers parameters

我编写了一个名为 swap 的函数来交换函数中给定的两个元素。但是当我在另一个函数中使用它时,它不起作用。如何让它发挥作用?

#include <iostream>
using namespace std;
void swap(int *a, int * b){
    int temp=*a;
    *a=*b;
    *b=temp;
}

void sum(int x, int y){
    int *a;
    a = &x;
    int *b;
    b=&x;
    swap(a,b);
    //cout << x << endl << y << endl;
}
int main(){
    int a=0, b=1;

    //swap(a,b);
    sum(a,b);
    cout << a << endl << b << endl;
    return 0;
}

最佳答案

b=&x;

应该是

b=&y;

此外,您正在交换本地拷贝。 sum 应该是:

void sum(int& x, int& y)

此外,这已经存在。它叫做std::iter_swap .

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

相关文章:

c++ - 无法弄清楚如何通过仅使用类的函数删除整个链表

在 C 中将 double * 转换为 double [9]

C : Using char * const pointer

c++ - C 头文件不能用 C 编译,但可以用 C++ 编译

c++ - 添加到 char 数组

c++ - 为什么不能隐式转换模板类型参数?

c - 在 C 中,为什么传递给 void 函数的参数在编译时必须抛出错误

c++ - 检测原始 pcm 数据中的声级

javascript - Google 地点 place.open_now

c++ - 使用指针 C++ 创建一个临时数组