关于参数传递的问题
看完这个贴,我还是觉得传指针和传引用一个样.
到底有什么区别呢?
既然c中的传指针就可以到达效果,为啥还要来个引用?
张军师兄认为c++中reference这个概念的引入,使得编程简洁。
for example:swap()
c 指针版
int swap(int *x, int *y)
{
int temp;
temp = *x; *x = *y; *y = temp;
return temp;
}
void main()
{
int a = 1, b = 2;
int *p1 = &a;
int *p2 = &b;
swap(p1, p2)
}
////////////////////////
c++ 引用版
int& swap2(int& x, int& y)
{
int temp;
temp = x;
x = y;
y = temp;
return x;
}
void main()
{
int a = 1, b = 2;
swap2(a, b);
}
虽然实际上在引用中处理的是地址,但是编辑程序时省去好多的*. 程序简洁多了。
References were introduced primarily to support operator overloading.
-- Bjarne Stroustrup, The Design and Evolution of C++