引用变量
来源:互联网 发布:oracle在线数据库 编辑:程序博客网 时间:2024/05/16 03:40
引用
引用是已定义的变量的别名。主要通途是用作函数的形参,通过将引用变量用作参数,函数将使用原始数据,而不是其副本。
在声明引用变量的时候,必须将其初始化,而不是像指针那样,先声明,再赋值。
int rat; int &rodent; rodent = rat;//不允许
引用更接近const指针,一旦与某个变量关联起来,就将一直效忠与它。
int &rodent = rats; int *const pr = &rats;//引用就是该代码的伪装
将引用用作函数参数
引用经常被用作函数参数,使得函数中的变量成为调用程序中的变量别名。
void swapr(int & a, int & b) // use references,pass variables{ int temp; temp = a; // use a, b for values of variables a = b; b = temp;}void swapp(int * p, int * q) // use pointers, pass address of variables{ int temp; temp = *p; // use *p, *q for values of variables *p = *q; *q = temp;}void swapv(int a, int b) // try using values,pass values of variables{ int temp; temp = a; // use a, b for values of variables a = b; b = temp; }
如果程序员的意图是让函数使用传递给它的信息,而不对这些信息进行修改,同时又想使用引用,则应使用常量引用。
当实参与引用参数不匹配时,以前时利用临时变量的,现在禁止创建临时变量。
将引用用于结构(类)
使用结构引用参数的方式与使用基本变量引用相同,只需在声明结构参数时使用引用运算符&即可。
struct sysop{ char name[26]; char quote[64]; int used;};sysop looper = { "Rick \"Fortran\" Looper", "I'm a goto kind of guy.", 0 };const sysop & use(sysop & sysopref){ cout << sysopref.name << " says:\n"; cout << sysopref.quote << endl; sysopref.used++; return sysopref; }
返回引用时最重要的一点是,应避免返回函数终止时不再存在的内存单元引用。最简单的方法是,返回一个作为参数传递给函数的医用。另一种方法是用new来分配新的存储空间。
何时使用引用参数
使用引用参数的主要原因有两个:
- 程序员能够修改函数中的数据对象
- 通过传递引用而不是整个数据对象,可以提高程序的运行速度。
对于使用传递的值而不修改的函数。
- 如果数据对象很小,如内置数据类型或小型结构,则按值传递。
- 如果数据对象是数组,则使用指针,因为这是唯一的选择,并将指针声明位指向const的指针。
- 如果数据对象是较大的结构,则使用const指针或const引用,以提高程序的效率。
- 如果数据对象是类对象,则使用const引用。
对于修改调用函数中的数据的函数。
- 如果数据对象是内置数据类型,则使用指针。
- 如果数据对象是数组,则只能使用指针。
- 如果数据对象是类对象,则使用引用。
0 0
- 变量引用
- 引用变量
- 引用变量
- 引用变量
- 引用变量
- 引用变量
- 引用变量
- 变量引用
- 引用变量
- 引用变量和引用数组
- 引用不是变量,引用只是引用
- PHP变量引用、函数引用、对象引用
- c++引用变量
- 引用局部变量地址
- shell 变量和引用
- 使用引用成员变量
- 变量引用问题
- 变量、指针、引用
- QT Quick 简介
- C/C++——输入输出特别注意点
- 分形理论
- 07 模塊
- 家居生活中的健康小细节
- 引用变量
- string、char与int类型之间的转换
- 统一资源定位符 (URL)
- 在线安装gem5和nvmain集成gem5
- React--初体验
- iOS里的内存泄露
- 算法题-韩信点兵
- 设计模式之六大原则(转载)
- 学习运维——kickstart自动安装linux