//1>引用:很多书描述引用为一个变量或对象的一个别名(alias),成为该变量或
//对象的同义词,然而,实际上引用是“别名其表,指针其实”。也即,引用
//实质上是一个指针,但使用时却像一个别名。
//2>引用的主要用途:a:用作函数参数,用于传递大型对象,必要时可从函数内部
修改函数外部的实参。此功能和指针相同,
b.从函数返回的引用可用作等式左值。
//3>定义引用的关键词是符合“&”,它的全称为ampersand。eg:
int i; //整型变量
int &r=i;//引用r被初始化为整型变量i的别名
引用的初始化是指将该引用定义为某个变量的别名,所以应用初始化时必须使用一个变量;引用初始化后,其使用和指针完全相同,其内存存储内容中存放了该变量的地址。引用一旦初始化后,即不能再被重新初始化,即所存地址值不能再更改。
但引用可以重新赋值。引用(r)重新赋值时将同时改变该引用(r)以及它用作别名的那个变量(i)的具体值。
//4>在传址调用中有时使用void指针,更为灵活,它和void变量的含义完全不同。
void 变量是“什么变量都没有”,eg:
void fun(int);表示函数fun不返回任何变量。
但void指针是“任何类型的指针”,eg:
void fun(void*);表示函数fun的形参可以是指向任何类型变量的指针。
//5>用const保护实参或数据成员eg:
void display(const int &x,const int &y);
//对象的同义词,然而,实际上引用是“别名其表,指针其实”。也即,引用
//实质上是一个指针,但使用时却像一个别名。
//2>引用的主要用途:a:用作函数参数,用于传递大型对象,必要时可从函数内部
修改函数外部的实参。此功能和指针相同,
b.从函数返回的引用可用作等式左值。
//3>定义引用的关键词是符合“&”,它的全称为ampersand。eg:
int i; //整型变量
int &r=i;//引用r被初始化为整型变量i的别名
引用的初始化是指将该引用定义为某个变量的别名,所以应用初始化时必须使用一个变量;引用初始化后,其使用和指针完全相同,其内存存储内容中存放了该变量的地址。引用一旦初始化后,即不能再被重新初始化,即所存地址值不能再更改。
但引用可以重新赋值。引用(r)重新赋值时将同时改变该引用(r)以及它用作别名的那个变量(i)的具体值。
//4>在传址调用中有时使用void指针,更为灵活,它和void变量的含义完全不同。
void 变量是“什么变量都没有”,eg:
void fun(int);表示函数fun不返回任何变量。
但void指针是“任何类型的指针”,eg:
void fun(void*);表示函数fun的形参可以是指向任何类型变量的指针。
//5>用const保护实参或数据成员eg:
void display(const int &x,const int &y);