注册 登录
编程论坛 新人交流区

关于引用调用的问题

佑礼 发布于 2007-10-04 11:41, 334 次点击
#include <iostream>
using namespace std;
void swap(int &a,int &b );
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;
}


以这个程序为例
我想问的是引用调用和指针是不是一回事?
#include <iostream>
using namespace std;
int main()
{
void swap(int *a,int *b);
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;
}

这个和上面的程序区别在哪?有什么实质性的不同呢?
还有就是在最上面的程序中,&a和&b是形参啊,而main函数里的x,y并没有定义他们的引用,那怎么就可以说是引用了呢?
6 回复
#2
小灵心2007-10-04 11:54
这个就是关于引用和指针的区别,,,不过看你的问题是连形参和实参都没怎么懂。。。

不过没关系,只要记住引用只是变量的别名。。再去看看C++ Primer就会很清楚了。
#3
佑礼2007-10-04 21:57

本来就刚学c++
形参,实参那个是不是我写错了?
a,b是形参吧?&a &b不是的
#4
nuciewth2007-10-04 22:36

前一个改变两个变量的名称.
后一个改变两个地址中的值.

#5
佑礼2007-10-06 14:08

是不是引用调用改掉的变量名类似于static变量一样?

#6
nuciewth2007-10-06 14:11
不对.
引用调用改掉的变量名
怎么会改掉.
#7
佑礼2007-10-07 12:47
这个这个。。。完全糊了
就解释一下引用调用的实质吧?
1