最奇怪!

gangzichh 2005-12-09 10:50:07
#include<iostream>
using namespace std;


int main()
{
void swap(int &,int &);
int i=3,j=5;
swap(i,j);
cout<<"i="<<i<<" "<<"j="<<j<<endl;
return 0;
}
void swap(int &a,int &b)
{
int temp;
temp=a;
a=b;
b=temp;
}
这样的结果是 i=3;j=5
#include<iostream>
using namespace std;

void swap(int &,int &);
int main()
{
int i=3,j=5;
swap(i,j);
cout<<"i="<<i<<" "<<"j="<<j<<endl;
return 0;
}
void swap(int &a,int &b)
{
int temp;
temp=a;
a=b;
b=temp;
}
这样的结果是j=5;i=3
但是这个void swap(int &,int &);
可是在外面呀
奇怪呀!
...全文
134 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
csucdl 2005-12-10
  • 打赏
  • 举报
回复
同意小芳
Bird_fro 2005-12-10
  • 打赏
  • 举报
回复
suzukilt()
第一个swap调用是错误的
定义的参数类型是指针类型,实参却是整型
---------------------------------------
我不同意你的说法,参数类型不是指针,明明是引用啊
iamcaicainiao 2005-12-10
  • 打赏
  • 举报
回复
呵呵,很强啊。搞不懂,只知道错误的那个根本没有调用函数。原因应该是main函数里又重新声明了函数swap。但是函数里又无法定义swap函数。否则编译出错。
suzukilt 2005-12-10
  • 打赏
  • 举报
回复
第二个应该是调用了库函数,你定义的函数仍然 没有 调用
suzukilt 2005-12-10
  • 打赏
  • 举报
回复
第一个swap调用是错误的
定义的参数类型是指针类型,实参却是整型


csucdl 2005-12-10
  • 打赏
  • 举报
回复
函数嵌套声明很正常, 不过没有标准说能够嵌套定义
csucdl 2005-12-10
  • 打赏
  • 举报
回复
你可以将swap 改一下名字 原因可能是它与库函数 swap 发生冲突
gangzichh 2005-12-10
  • 打赏
  • 举报
回复
谁知道这是为什么呀!我也在晕呢~
阿琥 2005-12-10
  • 打赏
  • 举报
回复
我就奇怪第一main中的swap为什么不调用呢
编译器才用的是什么机制啊
奇怪
jsdtxj 2005-12-10
  • 打赏
  • 举报
回复
VC6下两个程序都发生交换啊,你们没有试一试?
0黄瓜0 2005-12-10
  • 打赏
  • 举报
回复
第二个是调用了自定义的swap()的。
0黄瓜0 2005-12-09
  • 打赏
  • 举报
回复
第一个程序,swap()根本没调用。
0黄瓜0 2005-12-09
  • 打赏
  • 举报
回复
天哪!第一个程序 你把函数声明放函数里才让人开眼界。

15,440

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 非技术区
社区管理员
  • 非技术区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧