文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>C++ 引用

C++ 引用

时间:2010-10-22  来源:aaron_xueli

C ++ 引用

  1. 引用概念

         对变量起另外一个名字(外号), 这个名字称为该变量的引用。如:

int max;

int &refmax = max;

refmax并没有重新在内存中开辟单元,只是引用max的单元。max与refmax在内存中战胜同一地址,即同一地址两个名字。

#include <iostream>

using namespace std;

int main(void)
{
    int max;
    int &refmax = max;
    max = 5;
    refmax = 10;
    
    refmax = max + refmax;
    cout << max << endl;

    return 0;
}

对引用类型的变量,说明以下几点:

1、引用在定义的时候要初始化。

2、对引用的操作就是对被引用的变量的操作。

3、引用类型变量的初始化不能是一个常数。如:int &ref1 = 5; //是错误的。

4、引用同变量一样有地址,可以对其地址进行操作,即将其地址赋给一指针。

5、可以用动态分配的内存来初始化一个引用变量。

指针与引用的区别:

1、 指针是通过地址间接访问某个变量,而引用是通过别名直接访问某个变量。

2、 引用必须初始化,而一旦被初始化后不得再作为其他变量的别名。

当&的前面有类型符时(如int &a),它必然是对引用的声明;如果前面无类型符(如cout << &a),则是取变量的地址。

2. 引用的用途

引用的用途主要是用来作函数的参数或函数的返回值。引用作函数的形参,实际上是在被调函数中对实参变量进行操作。

#include <iostream>

using namespace std;

void change(int &x, int &y)
{
    int t;
    t = x; x = y; y = t;
}

int main(void)
{
    int a = 3, b = 5;
    change(a,b);
    cout << a << '\t' << b <<endl;
}

引用作为形参,实参是变量而不是地址,这与指针变量作形参不一样。

#include <iostream>

using namespace std;

void dd(int &x, int &y, int z)
{
    x = x + z;
    y = y - z;
    z = 10;

    cout << "(2)" << x << '\t' << y << '\t' << z <<endl;
}
int main(void)
{
    int a = 3, b = 4, c = 5, i;
    for (i = 0; i < 2; i++) {
        dd(a, b, c);
        cout<< "(1)" << a << '\t' << b << '\t' << c <<endl;
    }
}

#include <iostream>

using namespace std;

void f1(int *px) { *px += 10;}
void f2(int &xx) { xx += 10;}

int main(void)
{
    int x= 0;

    cout << "x=" << x << endl;

    f1(&x);

    cout << "x=" << x << endl;

    f2(x);

    cout << "x=" << x << endl;
}

函数的返回值为引用类型

可以把函数定义为引用类型,这时函数的返回值即为某一变量,所以可对其返回值进行赋值操作。这一点类同于函数的返回值为指针类型。

#include <iostream>

using namespace std;

int a = 4;

int &f(int x)
{
    a = a + x;
    return a;
}
int main(void)
{
    int t =5;

    cout << f(t) << endl;

    f(t) = 20;

    cout << f(t) << endl;

    t = f(t);

    cout << f(t) << endl;


}

结果:

9

25

60

相关阅读 更多 +
排行榜 更多 +
辰域智控app

辰域智控app

系统工具 下载
网医联盟app

网医联盟app

运动健身 下载
汇丰汇选App

汇丰汇选App

金融理财 下载