视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
苹果平板内存怎么清理 华为nove手机有扫描功能吗 华为手机怎么关应用 如何在word中删除空白页 苹果怎么清理平板内存 华为手机怎么关闭应用 惠普m227打印机怎么复印身份证正反面 网课怎么投放在电视上 苹果平板4怎么清理内存 无法共享网络打印机怎么办 苹果7刷机失败后怎么恢复正常 华为手机怎么清除后台 怎么清理苹果平板的内存 自己qq空间的照片怎么批量下载到电脑上 苹果8边框磕碰怎么修复 华为手机怎么关闭运行 用电脑怎么在图片上打标记 苹果平板ipad2怎么清理内存 eeid学生账号怎么查询 怎么在word中添加字体 win10系统如何关闭开机启动项 oppo手机怎么互传相册 苹果平板的内存怎么清理 华为手机怎么关闭程序 ps怎么平均切图片 在苹果平板上怎么清理内存 电视盒子怎么下载软件 别人陌陌视频怎么保存 美团异地购买怎么弄 怎么样从陌陌上下载视频 苹果平板电脑怎么清理内存垃圾 墙壁发霉怎么办 手机qq如何设置照片墙 如何保存陌陌里的视频 苹果平板怎么清理垃圾内存 自己怎么建一个微信群 怎么压缩电影大小不损画质视频 别人发的陌陌视频怎么保存 苹果迷你平板怎么清理内存 win10安全模式怎么退
新手入门:C++下的引用类型
2020-11-27 22:45:44 责编:小采
文档


引用类型也称别名,它是个很有趣的东西。在c++ 下你可以把它看作是另外的一种指针,通过引用类型我们同样也可以间接的操作对象,引用类型主要是用在函数的形式参数上,通常我们使用它是把类对象传递给一个函数。

  引用对象采用类型名加上&符号和名称的方式进行定义。例如:(int &test;),这里我们就定义了一个int类型的名为test 的引用,但是int &test;这样的方式是不能够被编译成功的,因为引用的定义必须同时给应用进行赋值操作,这里的赋值并不是说把变量的值传递给引用,而是把引用指向变量,写成这样就对了:(int &test=变量名;)。

#include <iostream
using namespace std; 

void main(void


int a=10; 
int &test=a; 
test=test+2; 

cout << &a << "|" << &test << "|" << a << "|" <<test << endl; 

cin.get(); 
}

  观察并编译运行上面的代码你会发现&a和&test的地址显示是相同的,a和test的值显示也是一样的!

  结合前一个教程的内容我们来说一下const引用的相关内容,这里要特别注意,和前一个教程一样带const修饰的引用同样也容易混淆概念!

  const修饰如果用在引用上会有一个特别之处,它的奥妙就在于可以进行不同类型的对象的初始化,而这一切在普通变量操作上是不可能的下面我们来看一个例子:

#include <iostream
using namespace std; 

void main(void


int a=10; 
//double &test = a + 1.2f; //这句就是错误的! 
const double &test = a + 1.2f; 

cout << &a << "|" << &test << "|" << a << "|" <<test << endl; 

cin.get(); 
}

  上面的代码足够说明问题了,这就是const修饰带来的好处,但是聪明的人会在输出的时候发现一个问题,就是a和test的值的输出不同,按照最先说的道理应该可以改变a的值呀,为什么在这里却有没有能够改变呢?

  道理是这样的,const修饰过后的引用在编译器内部是这样进行变化的。

int a=10; 
const double &test = a + 1.2f;

  这样的一段代码在编译器认为却是下面的方式进行的

int a=10; 
int temp = a; 
const double &test = temp + 12.f

  这里其实是把a的值赋给了一个临时temp 变量而后test获得的却是temp+12.f 改变的是temp而不是a,所以就出现了a和test显示的值不同的情况,这里要特别注意,这是一个很容易混淆的地方,在编写程序的时候要特别仔细,以免出现了问题却检查不出为什么

下载本文
显示全文
专题c#入门程序专题c#程序入门专题c#入门语法专题c#简单入门专题c#入门后专题c+引用专题c++最基础代码专题编写c++的步骤专题c++的学习代码专题c++入门程序代码专题如何看懂c++专题c++练习代码专题c++代码练习专题c++适合初学者吗专题c++帮助文档专题c/c++帮助文档专题c++简单例子专题用c++入门专题c++初学代码专题c++类的例子专题