首页 软件代码

C++的引用


这两天在C语言的基础上看了C++了一部分,现在看到了除了C语言可以通过值传递和地址传递之外,还可以通过引用的放大进行传递。
其意义就相当于给变量起一个别名。
定义方法:

int a; 
int &b=a;

注意点:

(1).应用只是声明,不是定义。
(2).声明的时候不需初始化。
(3).初始化之后不能别其他变量再次引用。
(4).不能引用数组。(部分编译器可以,但是这种行为会破环稳定性。)
(5).不能建立引用的引用。
实践中发现很多这句话的真正解释好像于书上不同,而且书上本身的例题也是违反了定义。
书上的定义:


int a=3;
int &b=a;
int &c=b;

其实我认为这样是对的,真正错误的是以下形式:

int a=3;
int &b=a;
int &&c=b;

问题:通过引用把三个整数从小到大排列。

#include<iostream>
using namespace std;
void change(int &x,int &y)
{
    int temp;
    temp=x;
    x=y;
    y=temp;
}
void  sort(int &a,int &b,int &c)
{
    if(a>b)change(a,b);
    if(a>c)change(a,c);
    if(b>c)change(b,c);
}
int  main()
{
    int m,n,p;
    cin>>m>>n>>p;
    sort(m,n,p);
    cout<<m<<" "<<n<<" "<<p<<endl;
    return 0;
 } 

运行结果:

10 4 2
2 4 10
                            




文章评论