免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 3251 | 回复: 14
打印 上一主题 下一主题

天啊!原来以为引用很简单,现在被一个程序搞垮了!! [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-01-07 21:25 |只看该作者 |倒序浏览
在看谭浩强的C++  结果在我的PC上我输入了这样的一段代码,主要是为了证明引用的用法的,结果发生了意外,请高手指点迷津,我有翻过其他资料,可是就是找不到原因
#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=5,j=3
可是我的结果却是i=3,j=5

痛苦啊 !!!

[ 本帖最后由 zhengyangas 于 2009-1-8 09:54 编辑 ]

未命名啊啊啊啊啊啊啊啊啊啊啊.jpg (85.72 KB, 下载次数: 27)

未命名啊啊啊啊啊啊啊啊啊啊啊.jpg

不行.jpg (22.67 KB, 下载次数: 31)

不行.jpg

可以了.jpg (25.5 KB, 下载次数: 27)

可以了.jpg

论坛徽章:
0
2 [报告]
发表于 2009-01-07 21:43 |只看该作者
换个编译器试试?

论坛徽章:
0
3 [报告]
发表于 2009-01-07 21:46 |只看该作者
$g++ a.cpp
$ ./a.out
i=5j=3

不知道你那怎么回事,怀疑你Debug目录下的程序不是最新编译的

论坛徽章:
0
4 [报告]
发表于 2009-01-07 21:47 |只看该作者

回复 #2 Roemer 的帖子

那就是编译器有问题了?我从另外一本介绍VC编程的书上也看到了类似的例子,VC书上介绍的就说运用引用也是不能交换数据的,现在更郁闷了。C++的书上说是可以,我的运行结果又是不行
还是要谢谢你

论坛徽章:
0
5 [报告]
发表于 2009-01-07 21:50 |只看该作者

回复 #3 zhoubug 的帖子

我删掉了Debug目录类的东西 重新编译还是上面的结果,难道编译器坏了?很郁闷的结果,我还遇到了#4楼的情况
谢谢你!

论坛徽章:
0
6 [报告]
发表于 2009-01-07 21:58 |只看该作者
VC编译运行正常,GCC未见异常..值也正确.

论坛徽章:
0
7 [报告]
发表于 2009-01-07 22:07 |只看该作者

回复 #6 musics 的帖子

那可能是我操作时出现了问题,我再试试,不过这个问题很神奇,我还是希望能够找到原因!
谢谢你!!

论坛徽章:
0
8 [报告]
发表于 2009-01-07 23:22 |只看该作者
感觉是头文件当中一个宏的问题,你把 swap 改成 swapint 试试

论坛徽章:
0
9 [报告]
发表于 2009-01-08 01:25 |只看该作者

回复 #1 zhengyangas 的帖子

晕了...
我在TC++3.0下编译得出的是i=5,j=3.无报错.
前提是在iostream后面加上.h,和把"using namespace std;"这句去掉,我是菜鸟,前天刚开始学习C++,为什么要去掉这句我还不知道...

#include "iostream.h"
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;
}


不知道为什么,我上传不了附件,也就没法发截屏...

论坛徽章:
0
10 [报告]
发表于 2009-01-08 01:28 |只看该作者
才找到完整回复的按键.呵呵
上传截屏


[ 本帖最后由 jiushigeceshi 于 2009-1-8 01:29 编辑 ]
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP