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

[关于引用]在 VC++6.0 环境下运行引用总是失败~

S140131022 发布于 2014-10-23 12:32, 1013 次点击
#include<iostream>
using namespace std;
void main()
{
void swap(int&x,int&y);
int a=3,b=5;
swap(a,b);
cout<<a<<' '<<b<<endl;
}

void swap(int&x,int&y)
{
int temp;
temp=x;
x=y;
y=temp;
}

程序很简单~但是每次运行结果却无法完成后a,b值得互换~难道因为环境问题
15 回复
#2
S1401310222014-10-24 09:11
木人?
#3
午夜小学仔2014-10-24 10:07
用指针,用int等多种方法都试过了……已跪……就这么一个小小的问题已经一夜没睡了…………渣渣阵亡
#4
stop12042014-10-24 10:24
通过.
没问题.
请把void main'的void去掉. 另外...把函数原型放在头文件下面,main上面最好..看
可以这样子.
程序代码:

void swap(int&x,int&y)
{
x^=y^=x^=y;  //就是交换
}


[ 本帖最后由 stop1204 于 2014-10-24 10:25 编辑 ]
#5
stop12042014-10-24 10:24
回复 3 楼 午夜小学仔
你在试什么..
#6
午夜小学仔2014-10-24 11:19
回复 5 楼 stop1204
开始就是试用void和指针呀,结果无论怎么尝试都没办法把两个变量的值改掉,逻辑上没错误,就是运行结果和所想的不一样,改了几次不同的情况,然后怒用int返回值来交换a,b的值,但是新的问题就来了,怎么做都没办法返回两个变量的值,就算查了资料按照资料上说的做也不行,最后又回到起点,开始一句又一句跟踪似的检查哪里错误,但是最后都反应的是,在引用里值已经互换,但是就是没办法将值返回到main里,然后就跪了
ps:以前用的vb,真心没习惯c++的指针运用方式。
再ps:今天英语老师看到我的黑眼圈都忍不住发笑,活生生的被抽起来5次
#7
zhu4044241182014-10-24 15:46
是不是你的调用有问题啊 ?你可以换一种方法来调用。
#8
hackrol2014-10-25 13:22
应该没有问题吧..我也在学C++了!
#9
S1401310222014-10-25 14:26
回复 8 楼 hackrol
可以交流交流~哦
#10
S1401310222014-10-25 14:27
回复 8 楼 hackrol
在VC++6.0环境下没法完成互换哦
#11
S1401310222014-10-25 14:46
#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;
}

书上照抄的程序都不行~难道我要换一个运行环境了?
#12
qwe8851677592014-10-25 22:24
你换一下函数名就行了
#include<iostream>

using namespace std;

int main()
{
    void wap(int &,int &);
    int i=6,j=5;
    wap(i,j);
    cout<<i<<"..........."<<j<<endl;
    return 0;
}

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

这是我试过的,能行
我也试过指针了,改成指针的话,你原来的程序就行,但是用引用的话,我实在是不知道swap这个函数名有什么问题啊
实在是解决不了你的问题


[ 本帖最后由 qwe885167759 于 2014-10-25 22:26 编辑 ]
#13
S1401310222014-10-26 16:37
回复 12 楼 qwe885167759
居然换一个函数名就行了~真心郁闷了~谢谢哦~
#14
zklhp2014-10-26 16:54
头像挺好看
#15
stop12042014-10-27 00:48
回复 13 楼 S140131022
对了..  C函数库里就有一个 swap名字的函数.

所以应该是重载了.
#16
qwe8851677592014-10-27 17:51
回复 13 楼 S140131022
共同进步
1