background image

三道四。所以 n 既不是 m 的拷贝,也不是指向 m 的指针,其实 n 就是 m 它
自己。

    引用的一些规则如下:

    (1)引用被创建的同时必须被初始化(指针则可以在任何时候被初始
化)。

    (2)不能有 NULL 引用,引用必须与合法的存储单元关联(指针则可以
是 NULL)。

    (3)一旦引用被初始化,就不能改变引用的关系(指针则可以随时改变
所指的对象)。

    以下示例程序中,k 被初始化为 i 的引用。语句 k = j 并不能将 k 修改成为 j 
的引用,只是把 k 的值改变成为 6.由于 k 是 i 的引用,所以 i 的值也变成了
6.

    int i = 5;

    int j = 6;

    int &k = i;

    k = j  

; // k 和 i 的值都变成了 6;

    上面的程序看起来象在玩文字游戏,没有体现出引用的价值。引用的主要功
能是传递函数的参数和返回值。C++语言中,函数的参数和返回值的传递方式
有三种:值传递、指针传递和引用传递。

    

以下是 值传递 的示例程序。由于 Func1 函数体内的 x 是外部变量 n 的一

份拷贝,改变 x 的值不会影响 n  

, 所以 n 的值仍然是 0.

 void Func1(int x)
{
x = x + 10;
}
int n = 0;
Func1(n);
cout << “n = ” << n << endl;// n = 0

    

以下是 指针传递 的示例程序。由于 Func2 函数体内的 x 是指向外部变量

n 的指针,改变该指针的内容将导致 n 的值改变,所以 n 的值成为 10.

 void Func2(int *x)
{
(* x) = (* x) + 10;