标题:这个类似swap()函数功能 请教大伙意见
只看楼主
tedted
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2016-9-6
结帖率:0
已结贴  问题点数:20 回复次数:3 
这个类似swap()函数功能 请教大伙意见
#include <iostream>

using namespace std;

void change(int a, int b)  
{
    int  k,kk,temp;

    k = a, kk = b;
    temp = k;
    k = kk;
    kk = temp;

    a = k, b = kk;
}

int main(void)
{
    int x = 44;
    int y = 55;

    change(x,y)
    cout << "x=" << x << endl;
    cout << "y=" << y << endl;

    return 0;
}



搜索更多相关主题的帖子: include change 
2016-09-20 14:22
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:507
帖 子:8890
专家分:53117
注 册:2011-1-18
得分:20 
什么“意见”,不知所云
2016-09-20 14:34
tedted
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2016-9-6
得分:0 
@rjsp没有,就是请教  请教指正
对不起 不过发现还是错了 以上代码没能起到交换实参作用 是不是要交换两个的地址才行
还是太菜 见笑  估计大伙看到会笑而不语。。。...
得版主亲自点拨
2016-09-20 15:14
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:507
帖 子:8890
专家分:53117
注 册:2011-1-18
得分:0 
C++ 中标准 std::swap 函数如下
程序代码:
template<class T> inline void swap( T& lhs, T& rhs )
{
    if( &lhs != &rhs )
    {
        T t = std::move( lhs );
        lhs = std::move( rhs );
        lhs = std::move( t );
    }
}
当然,实际上会比这个更复杂

如果是C语言,大体如下
程序代码:
#include <stdio.h>

void change( int* a, int* b )
{
    int t = *a;
    *a = *b;
    *b = t;
}

int main( void )
{
    int x = 44;
    int y = 55;

    printf( "x=%d, y=%d\n", x, y );
    change( &x, &y );
    printf( "x=%d, y=%d\n", x, y );

    return 0;
}

2016-09-20 15:32



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-468973-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.014115 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved