• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >ASP.NET > 新手入门:C++下的引用类型

新手入门:C++下的引用类型

作者: 字体:[增加 减小] 来源:互联网 时间:2017-05-11

通过本文主要向大家介绍了显卡类型入门级,引用类型,引用数据类型,java引用类型,引用类型有哪些等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

引用类型也称别名,它是个很有趣的东西。在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显示的值不同的情况,这里要特别注意,这是一个很容易混淆的地方,在编写程序的时候要特别仔细,以免出现了问题却检查不出为什么

</div>
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • 新手入门:C++下的引用类型

相关文章

  • 2017-05-11asp.net 将设有过期策略的项添加到缓存中
  • 2017-05-11基于asp.net实现图片在线上传并在线裁剪功能
  • 2017-05-11.NET动态加载用户控件并传值的方法
  • 2017-05-11基于ASP.NET的lucene.net全文搜索实现步骤
  • 2017-05-11ASP.NET笔记之页面跳转、调试、form表单、viewstate、cookie的使用说明
  • 2017-05-11VS2012/VS2013本地发布网站问题集锦(HTTP错误代码)
  • 2017-05-11asp.net+jquery Jsonp使用方法
  • 2017-05-11ASP.NET UserControl 通信的具体实现
  • 2017-05-11Asp.net保持页面滚动条位置(页面提交后不变)
  • 2017-05-11Discuz!NT 3与asp.net 整合的实例教程

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • ASP.NET中的几种弹出框提示基本实现方法
    • ASP.NET使用xslt将xml转换成Excel
    • 详解ASP.NET 页面之间传值的几种方式
    • C#反射技术的简单操作(读取和设置类的属性)
    • asp.net安全、实用、简单的大容量存储过程分页第1/2页
    • asp将本地的文件上传到服务器
    • 基于.NET 4.5 压缩的使用
    • 巧用ASP.NET Cookie
    • asp.net DropDownList自定义控件,让你的分类更清晰
    • Exception type: HttpException Exception message: Request timed out.

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有