| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 524 人关注过本帖
标题:关于用指针写交换函数遇到的问题!
只看楼主 加入收藏
newCpp
Rank: 5Rank: 5
来 自:火星
等 级:职业侠客
威 望:3
帖 子:256
专家分:375
注 册:2009-8-17
结帖率:97.83%
收藏
已结贴  问题点数:20 回复次数:3 
关于用指针写交换函数遇到的问题!
#include <iostream>
using namespace std;
void swap(int *a,int *b)
{   
    int c;
    cout<<"SWAp函数中,交换前,a:"<<*a<<"b:"<<*b<<endl;
    c=*a;
    *a=*b;
    *b=c;
    cout<<"SWAp函数中,交换后,a:"<<*a<<"b:"<<*b<<endl;

}
int main()
{
    int a=3,b=4;
    cout<<"主函数中,交换前,a:"<<a<<"b:"<<b<<endl;
swap(a,b);
    cout<<"主函数中,交换后,a:"<<a<<"b:"<<b<<endl;

return 0;
}
为什么这里面的主函数里面的swap(a,b)没有加上引号,
swap里面的输出语句就不执行了?
加上引号却执行了?
搜索更多相关主题的帖子: 函数 指针 
2009-10-07 17:00
xxcc309
Rank: 2
等 级:论坛游民
威 望:1
帖 子:63
专家分:82
注 册:2007-6-25
收藏
得分:8 
编译器根据你形参的类型调用了不同的swap函数,一个事你自己定义的swap(int *a,int *b),一个是系统库函数swap(int ,int )
其中加上引用调用的是你上面定义的swap(int *a,int *b),不加引用就会调用系统库函数swap(int ,int )。

努力决定一切 奋斗才是命运
2009-10-07 17:19
xxcc309
Rank: 2
等 级:论坛游民
威 望:1
帖 子:63
专家分:82
注 册:2007-6-25
收藏
得分:8 
你可以把自己定义的swap注释掉发现依然可以正常运行:
#include <iostream>
using namespace std;
/*void swap(int *a,int *b)
{     
    int c;
    cout<<"SWAp函数中,交换前,a:"<<*a<<"b:"<<*b<<endl;
    c=*a;
    *a=*b;
    *b=c;
    cout<<"SWAp函数中,交换后,a:"<<*a<<"b:"<<*b<<endl;
 
}*/
int main()
{
    int a=3,b=4;
    cout<<"主函数中,交换前,a:"<<a<<"b:"<<b<<endl;
swap(a,b);
    cout<<"主函数中,交换后,a:"<<a<<"b:"<<b<<endl;
 
return 0;
}
这样问题就应该明白了。

努力决定一切 奋斗才是命运
2009-10-07 17:21
faye3000
Rank: 2
等 级:论坛游民
帖 子:11
专家分:25
注 册:2009-10-7
收藏
得分:4 
在系统本身就有一个swap函数,你可以把你自己写的函数换个名字试试~
2009-10-07 20:27
快速回复:关于用指针写交换函数遇到的问题!
数据加载中...
 
   



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

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