引用是什么?

int a = 10;
int b = 5;
int c = 1;
int *p = &a;
b = *p;        //b = 10; *p is a;
*p = c;        //a = 1; p is &a;

我们在c语言中奖p定义为指针,那么*p(指针所指向的单元的内容)定义为什么呢?

在c++中我们将*p定义为引用。即:引用其实为一个变量地址的解间接引用。

int a = 10;
int *p = &a;	// a = *p, p = &a;
int &q = a;	// q = a = *p = *(&a)

正如*p一样,即可以作为左值,又可以作为右值,所以引用有以下特点:

作为左值或函数的返回值时,表示该存储单元,可以赋值;
作为右值或函数的形参时,表示该存储单元的值,不可以被赋值;

你可能感兴趣的:(引用)