t=x;x=y y=t实现不了交换x,y的值吗

void funb(intx,inty)
{int t;
t=x;x=y;y=t;

怎么实现不了交换x和y的值并返回交换结果

要用函数交换两个变量的值,需要用到引用传参:

void funb(int &x,int &y){
     int tt=x;x=y;y=t;
}

这样可以交换 x y,但是仅限于函数内部,不会作用到实参,要作用到实参,C++需要把 void funb(int x, int y)
修改为
void funb(int &x, int &y)

供参考:

void funb(int* x, int* y)
{
    int t;
    t = *x; *x = *y; *y = t;
}
//函数调用处:
funb(&x, &y);

以下内容部分参考ChatGPT模型:


这个问题的实现方式是正确的,可以实现交换x和y的值。以下是一个C++示例代码:

#include <iostream>

void swap(int& x, int& y) {
    int temp = x;
    x = y;
    y = temp;
}

int main() {
    int a = 5, b = 10;
    std::cout << "Before swap: a = " << a << ", b = " << b << std::endl;
    swap(a, b);
    std::cout << "After swap: a = " << a << ", b = " << b << std::endl;
    return 0;
}

输出:

Before swap: a = 5, b = 10
After swap: a = 10, b = 5

在这个示例中,我们定义了一个swap函数,它接受两个整数引用作为参数。在函数中,我们使用一个临时变量temp来保存x的值,然后将x赋值为y,将y赋值为temp。这样就实现了x和y的值交换。在主函数中,我们定义了两个整数a和b,调用swap函数来交换它们的值,并输出结果。


如果我的建议对您有帮助、请点击采纳、祝您生活愉快