c++中&含义 您所在的位置:网站首页 opec的含义 c++中&含义

c++中&含义

2023-09-08 04:21| 来源: 网络整理| 查看: 265

在C++中,&既有引用又有取地址,其实他们的区别可以用一句话概括:=号左边是引用,=号右边是取址。

比如   int a=3;     int &b=a;//引用;                                                    int *p=&a; //取地址

引用b,它是变量a的引用,即别名,&在此不是求地址运算,而是起标识作用,引用声明完毕后,相当于目标变量名有两个名称,操作别名和操作原变量等同

*************************************************************************

 一、引用简介

  引用就是某一变量(目标)的一个别名,对引用的操作与对变量直接操作完全一样。

  引用的声明方法:类型标识符 &引用名=目标变量名;

  【例1】:int a; int &ra=a; //定义引用ra,它是变量a的引用,即别名

  说明:

  (1)&在此不是求地址运算,而是起标识作用。

  (2)类型标识符是指目标变量的类型。

  (3)声明引用时,必须同时对其进行初始化。

  (4)引用声明完毕后,相当于目标变量名有两个名称,即该目标原名称和引用名,且不能再把该引用名作为其他变量名的别名。

   ra=1; 等价于 a=1;

  (5)声明一个引用,不是新定义了一个变量,它只表示该引用名是目标变量名的一个别名,它本身不是一种数据类型,因此引用本身不占存储单元,系统也不给引用分配存储单元。故:对引用求地址,就是对目标变量求地址。&ra与&a相等。

  (6)不能建立数组的引用。因为数组是一个由若干个元素所组成的集合,所以无法建立一个数组的别名。

  二、引用应用

  1、引用作为参数

  引用的一个重要作用就是作为函数的参数。以前的C语言中函数参数传递是值传递,如果有大块数据作为参数传递的时候,采用的方案往往是指针,因为 这样可以避免将整块数据全部压栈,可以提高程序的效率。但是现在(C++中)又增加了一种同样有效率的选择(在某些特殊情况下又是必须的选择),就是引 用。

  【例2】:

void swap(int &p1, int &p2) //此处函数的形参p1, p2都是引用 { int p; p=p1; p1=p2; p2=p; }

  为在程序中调用该函数,则相应的主调函数的调用点处,直接以变量作为实参进行调用即可,而不需要实参变量有任何的特殊要求。如:对应上面定义的swap函数,相应的主调函数可写为:

main( ) {  int a,b;  cin>>a>>b; //输入a,b两变量的值  swap(a,b); //直接以变量a和b作为实参调用swap函数  cout  temp=(float)(r*r*3.14);  return temp; } void main() //主函数 {  float a=fn1(10.0); //第1种情况,系统生成要返回值的副本(即临时变量)  float &b=fn1(10.0); //第2种情况,可能会出错(不同 C++系统有不同规定)  //不能从被调函数中返回一个临时变量或局部变量的引用  float c=fn2(10.0); //第3种情况,系统不生成返回值的副本  //可以从被调函数中返回一个全局变量的引用  float &d=fn2(10.0); //第4种情况,系统不生成返回值的副本  //可以从被调函数中返回一个全局变量的引用  cout



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有