问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501
你好,欢迎来到懂视!登录注册
当前位置: 首页 - 正文

c语言问题,什么叫引用啊?

发布网友 发布时间:2022-04-22 03:27

我来回答

4个回答

热心网友 时间:2022-04-27 19:13

引用(reference)是c++对c语言的重要扩充。
  一、引用的概念
  引用引入了对象的一个同义词。定义引用的表示方法与定义指针相似,只是用&代替了*。
  例如: Point pt1(10,10);
  Point &pt2=pt1; 定义了pt2为pt1的引用。通过这样的定义,pt1和pt2表示同一对象。
  需要特别强调的是引用并不产生对象的副本,仅仅是对象的同义词。因此,当下面的语句执行后:
  pt1.offset(2,2);
  pt1和pt2都具有(12,12)的值。
  引用必须在定义时马上被初始化,因为它必须是某个东西的同义词。你不能先定义一个引用后才
  初始化它。例如下面语句是非法的:
  Point &pt3;
  pt3=pt1;
  那么既然引用只是某个东西的同义词,它有什么用途呢?
  下面讨论引用的两个主要用途:作为函数参数以及从函数中返回左值。
  二、引用参数
  1、传递可变参数
  传统的c中,函数在调用时参数是通过值来传递的,这就是说函数的参数不具备返回值的能力。
  所以在传统的c中,如果需要函数的参数具有返回值的能力,往往是通过指针来实现的。比如,实现
  两整数变量值交换的c程序如下:
  void swapint(int *a,int *b)
  {
  int temp;
  temp=*a;
  a=*b;
  *b=temp;
  }
  使用引用机制后,以上程序的c++版本为:
  void swapint(int &a,int &b)
  {
  int temp;
  temp=a;
  a=b;
  b=temp;
  }
  调用该函数的c++方法为:swapint(x,y); c++自动把x,y的地址作为参数传递给swapint函数。
  2、给函数传递大型对象
  当大型对象被传递给函数时,使用引用参数可使参数传递效率得到提高,因为引用并不产生对象的
  副本,也就是参数传递时,对象无须复制。下面的例子定义了一个有限整数集合的类:
  const maxCard=100;
  Class Set
  {
  int elems[maxCard]; // 集和中的元素,maxCard 表示集合中元素个数的最大值。
  int card; // 集合中元素的个数。
  public:
  Set () {card=0;} //构造函数
  friend Set operator * (Set ,Set ) ; //重载运算符号*,用于计算集合的交集 用对象作为传值参数
  // friend Set operator * (Set & ,Set & ) 重载运算符号*,用于计算集合的交集 用对象的引用作为传值参数
  ...
  }
  先考虑集合交集的实现
  Set operator *( Set Set1,Set Set2)
  {
  Set res;
  for(int i=0;i<Set1.card;++i)
  for(int j=0;j>Set2.card;++j)
  if(Set1.elems==Set2.elems[j])
  {
  res.elems[res.card++]=Set1.elems;
  break;
  }
  return res;
  }
  由于重载运算符不能对指针单独操作,我们必须把运算数声明为 Set 类型而不是 Set * 。
  每次使用*做交集运算时,整个集合都被复制,这样效率很低。我们可以用引用来避免这种情况。
  Set operator *( Set &Set1,Set &Set2)
  { Set res;
  for(int i=0;i<Set1.card;++i)
  for(int j=0;j>Set2.card;++j)
  if(Set1.elems==Set2.elems[j])
  {
  res.elems[res.card++]=Set1.elems;
  break;
  }
  return res;
  }
  三、引用返回值
  如果一个函数返回了引用,那么该函数的调用也可以被赋值。这里有一函数,它拥有两个引用参数并返回一个双精度数的引用:
  double &max(double &d1,double &d2)
  {
  return d1>d2?d1:d2;
  }
  由于max()函数返回一个对双精度数的引用,那么我们就可以用max() 来对其中较大的双精度数加1:

热心网友 时间:2022-04-27 20:31

C语言没有引用啊,C++才有.

引用能起到指针的部分作用,但是比指针安全.

一个引用可以看作是某个变量的一个"别名"。对引用进行操作就像对原变量进行操作一样。

主要用于函数的参数传递时使用。因为C语言没有类似VB的“传引用调用”这个功能,所以C++的引用填补了这个空白。从此即使需要改动参数,也直接传递一个变量过去即可。这在操作符重载中有更重要的意义。等你学到以后才会明白。

int a; //声明变量a
int& ra = a; //声明一个引用,名字是ra,ra引用了a

注意,ra声明的时候必须同时给出它到底引用了谁
int& ra; //只声明不指明是不对的。

还有,引用一旦声明,就不能再修改到其他变量上了,这与指针不同。
ra = b; //这是不行的,因为已经int &ra = a了

热心网友 时间:2022-04-27 22:05

你们能不能能给楼主一个自己的看发?
引用,是C++的内容,他是在C语言指针的基础上优化得来的,说到引用就不得不说到C中指针的缺点,因为指针可以指向任意的内存单元包括系统所在的内存,如果指针恰好指在系统的内存位置,那么一旦你给该指针赋值了那么系统就会面临崩溃,所以用指针要很小心,很多程序方面的专家建议取消指针,但指针的优点确实是很可观的,因此为了解决这个问题,引用就诞生了,引用就等于给变量起了另一个名字,这样你在用引用名的时候就等于在使用该变量本身,引用实际上也是地址传递,因为引用名和变量用的是同一个内存。
不知道这样说楼主能否理解!

热心网友 时间:2022-04-27 23:57

引用简介
  引用就是某一变量(目标)的一个别名,对引用的操作与对变量直接操作完全一样。
  引用的声明方法:类型标识符 &引用名=目标变量名;
  【例1】:int a; int &ra=a; //定义引用ra,它是变量a的引用,即别名
  说明:
  (1)&在此不是求地址运算,而是起标识作用。
  (2)类型标识符是指目标变量的类型。
  (3)声明引用时,必须同时对其进行初始化。
  (4)引用声明完毕后,相当于目标变量名有两个名称,即该目标原名称和引用名,且不能再把该引用名作为其他变量名的别名。
  ra=1; 等价于 a=1;
  (5)声明一个引用,不是新定义了一个变量,它只表示该引用名是目标变量名的一个别名,它本身不是一种数据类型,因此引用本身不占存储单元,系统也不给引用分配存储单元。故:对引用求地址,就是对目标变量求地址。&ra与&a相等。
  (6 ) 不能建立数组的引用。因为数组是一个由若干个元素所组成的集合,所以无法建立一个数组的别名.
  (7)不能建立引用的引用,不能建立指向引用的指针。因为引用不是一种数据类型,所以没有引用的引用,没有引用的指针。
  例如:
  int n;
  int &&r=n;//错误,编译系统把"int &"看成一体,把"&r"看成一体,即建立了引用的引用,引用的对象应当是某种数据类型的变量
  int &*p=n;//错误,编译系统把"int &"看成一体,把" *p "看成一体,即建立了指向引用的指针,指针只能指向某种数据类型的变量
  (8)值得一提的是,可以建立指针的引用
  例如:
  int *p;
  int *&q=p;//正确,编译系统把" int * "看成一体,把"&q"看成一体,即建立指针p的引用,亦即给指针p起别名q。
  注意:学会这种分析方法,把什么看成一体,又把什么看成一体
c语言问题,什么叫引用啊?

引用(reference)是c++对c语言的重要扩充。一、引用的概念 引用引入了对象的一个同义词。定义引用的表示方法与定义指针相似,只是用&amp;代替了*。例如: Point pt1(10,10);Point &amp;pt2=pt1; 定义了pt2为pt1的引用。通过这样的定义,pt1和pt2表示同一对象。需要特别强调的是引用并不产生对象的副本,...

c语言中什么叫引用?

引用(reference)是c++对c语言的重要扩充。引用引入了对象的一个同义词。定义引用的表示方法与定义指针相似,只是用&amp;代替了*,例如: Point pt1(10,10)。Point &amp;pt2=pt1;,定义了pt2为pt1的引用。通过这样的定义,pt1和pt2表示同一对象。需要特别强调的是引用并不产生对象的副本,仅仅是对象的同...

请问c语言中引用怎样理解?

因此,引用在C语言中是一种强大的工具,它允许我们间接修改原变量的值,但同时保持对原值的直接访问。

c语言里一般都说引用而不说使用,引用和使用有什么区别呢

引用是C++里面的概念,就是给一个变量起一个别名。比如说 int a=10;int b=&amp;a; //这里b就是a的一个别名,以后a=b;b = 5; //此时a也等于5 引用的一个应用是参数传递,C语言里面要想通过函数改变值只能通过指针。如果用引用就很容易。比如:f(int &amp;a)int c = 10;f(c);在f...

C语言中引用指的是什么,举个例子

C语言里面没有引用的说法,只有C++里面有。C++里引用就是给变量定义一个别名,操作这个别名就是操作原变量。比如,我们定义一个引用:int a=10; //定义一个普通变量int &amp;ref=a; //定义一个变量a的引用ref=20; //这里对ref进行操作其实就是对a进行操作变量主要是在参数传递的时候非常有...

请问c语言中引用怎样理解?

是引用类型吗?C语言中没有引用类型,引用类型是C++的,意思是为已有变量起一个别名。如int a,&amp;b=a;,就定义了b是变量a的别名。通俗点说,可以理解为a、b是同一个变量的不同符号而已。

c语言中有没有“引用”这个概念?

其实c语言没有引用,只是作为取地址;引用符“&amp;”是c++语言中有

C语言版的数据结构中为什么都用了引用呢

首先说明早期C语言标准中没有引用的概念,所以以前讨论引用的问题只是在C++中。但是c语言c99标准中确实又把引用加入了c语言的范围内.不过现在一般的编译器不支持c99标准.如果是学习数据结构的话,你只用理解引用的作用就行了.引用可以被认为是一个变量的别名,引用在定义时必须指定其所引用的原变量且不可...

c语言中有引用这个概念吗?

C 语言没有 引用的概念,C++有 vb,c#, java也都有 指针比引用更 直接,更容易操作内存, 但是也不安全。所以c,c++ 可以方便实现更强大的底层 API的功能。指针的使用 意味着有可能内存出错,如果操作不规范有可能程序崩溃 甚至系统崩溃。.net Frame 框架不用指针概念,而用 引用, 规避了内存操作,...

c++里&amp;是什么意思?

1、引用:引用(reference)就是C++对C语言的重要扩充。引用就是某一变量(目标)的一个别名,对引用的操作与对变量直接操作完全一样。引用的声明方法:类型标识符 &amp;引用名=目标变量名;引用引入了对象的一个同义词。定义引用的表示方法与定义指针相似,只是用&amp;代替了*。2、按位与:&amp;可以表示逻辑运算...

声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。
E-MAIL:11247931@qq.com
郑州市金水区丰庆路办事处魅力丰庆 金龙社区居委会河南省郑州市金水区丰产路街道金龙社区居委 批发和零售业商品销售和库存报表批发和零售业商品销售和库存怎么填 vb 入库单制作 甲减是哪个指标不正常 甲减如何确诊 ...草案拟规定点餐浪费也要收钱,平常你都是怎么避免浪费的呢?_百度知 ... 金牌励志系列·名著的力量:向文学大师学英语目录 由于雨季造成商场消售不好,怎样写报表? ...的自营销售与专柜销售收入支出等用什么科目区分?利润表又如何做? c++中引用的好处有什么呢 - C / C++ - 说明c语言程序中变量的作用域及存储位置。 c++中的引用(&)到底都有什么用处? 请问c语言中引用怎样理解? 引用型变量 c/c++ C语言中为什么有变量?变量有什么用? c语言中变量是干什么用的 怎样知道QQ好友是否被人拉黑或删除? 怎么分辨对方把我qq拉黑还是删除好友了 如何用苹果手机传资料 问什么用了韩束紫竹平衡系列 刚刚可是用有点刺痛 ... 韩束紫竹洗面奶好少额,在超市买了一套四件套,刚... 韩束紫竹控油 用过之后 脸上为什么特干 特紧 起干... 护肤品韩束紫竹套装好用吗?多少钱一套 韩束紫竹是不是温和的 混合型皮肤用韩束墨菊的还是紫竹的 最近买了一套韩束紫竹的护肤品,可是用了几天,好... 十五岁女生皮肤油鼻子有痘痘用韩束紫竹细肤平衡水... 有哪些学生党可以入手的平价好用的补水护肤品? 我20岁,毛孔粗大容易长痘痘,又是草莓鼻,好多黑... c语言中什么叫引用? 在c语言中什么是变量的作用域 c语言变量引用 如何在c语言中定义及引用全局变量? 工行信用卡手机怎么取现 工行信用卡能用手机提现吗? 工行信用卡可以提现吗 工商银行信用卡可以取现金吗 工商银行信用卡溢缴款柜台取现限额是多少? 工商银行信用卡可以取现金吗 手续费高吗 比特币是谁发明的 ekt和鸿星尔克有关系吗 比特币创始人真实身份揭晓 比特币创始人是谁 比特币与以太坊他们创始人是谁? EKT是什么品牌 传说中比特币的创始人是谁 比特币的创始人是谁? 火币创始人是谁? DK币的创始人是谁? 异刹创始人是谁?
  • 焦点

最新推荐

猜你喜欢

热门推荐