注册 登录
编程论坛 C++教室

关于交换两个数的问题

小亦庄葛三娘 发布于 2017-03-07 14:55, 1663 次点击
程序代码:
void swapr(int &a, int &b);
void swapp(int *p, int *q);
void swapv(int a, int b);

int main()
{
    int wallet1 = 300;
    int wallet2 = 350;
   
    cout << "wallet1 = $" << wallet1;
    cout << " wallet2 = $" << wallet2 << endl;
   
    cout << "using references to swap contents: " << endl;
    swapr(wallet1, wallet2);
    cout << "wallet1 = $" << wallet1;
    cout << " wallet2 = $" << wallet2 << endl;
   
    cout << "using pointers to swap contents again: " << endl;
    swapp(&wallet1, &wallet2);
    cout << "wallet1 = $" << wallet1;
    cout << " wallet2 = $" << wallet2 << endl;
   
    cout << "trying use passing by value:" << endl;
    swapv(wallet1, wallet2);
    cout << "wallet1 = $" << wallet1;
    cout <<" wallet2 = $" << wallet2 << endl;
   
    return 0;
}

void swapr(int &a, int &b)
{
    int temp;
   
    temp = a;
    a = b;
    b = temp;
}

void swapp(int *p, int *q)
{   
    int temp;
   
    temp = *p;
    *p = *q;
    *q = temp;
}

void swapv(int a, int b)
{   
    int temp;
   
    temp = a;
    a = b;
    b = temp;
}


只有本站会员才能查看附件,请 登录


为什么利用指针交换两个数没有成功?请大神帮忙
6 回复
#2
rjsp2017-03-07 15:01
为什么利用指针交换两个数没有成功?
为什么你说它没成功呢?

#3
ehszt2017-03-07 15:15
是最后一次没换成功。
#4
wp2319572017-03-07 17:57
void swapv(int a, int b)
{   
    int temp;
   
    temp = a;
    a = b;
    b = temp;
}



这是经典失败案例
#5
yangwawa2017-03-08 00:14
你的第一次是引用,交换了;
你后面的指针也交换了;
为啥你会觉得没有成功?
#6
小亦庄葛三娘2017-03-09 15:18
回复 3楼 ehszt
多谢,开始没看出来
#7
小亦庄葛三娘2017-03-09 15:18
回复 5楼 yangwawa
嗯嗯,开始没看出来,多谢
1