初识C++引用&

在将左程云的《程序员面试代码指南》JAVA版转化为C++版中遇到的问题之一就是JAVA的一切皆引用:
C++引用:

1
void swap(int &a,int &b)

两种写法,比如用来交换数组a的i和j两个位置的值:
写法1:

1
2
3
4
5
6
7
8
9
10
11
//1:声明为指针型:
template<class T>
void Swap(T *a,T *b)
{
    T  tmp ;
    tmp = *a ;
    *a = *b;
    *b = tmp ;
}
//调用时:
Swap(&a[i],&a[j]);

写法2:

1
2
3
4
5
6
7
8
9
//2:声明为引用类型;
void Swap(T &a,T &b)
{
    T c = a;
    a = b ;
    b = c;
}
//调用时:
swap(list[i],list[k]);

未完待续!