学习c++培训,首选智盟c++培训中心

最新动态

特大喜讯:智盟培训将于2011年11月 份隆重推出已上线商用项目案例实训课程,课堂案例选用一家中型门户网站作为实训的授课内容。授课老师是该网站项目的技术负责人。网站采用微软Windows Server 2008+ASP.NET4.0平台,开发语言采用C#语言。此网站项目架构设计优秀、技术先进。敬请喜欢的朋友时刻关注本站最新公告!咨询电话:010-52850976

最新开班

  • ASP.NET培训-高级开发班:团报3500元
  • 北京-----11月 10号 已开班
  • 北京-----11月 18号 已开班
  • JAVA培训-高级开发班:团报2800元
  • 北京-----11月 10号 已开班
  • 北京-----11月 12号 已开班
  • 北京-----11月 14号 名额仅限10名
  • 数据库培训-高级开发班:团报3500元
  • 北京-----11月 10号 已开班
  • 北京-----11月 18号 已开班
  • C++培训-高级开发班:团报4400元
  • 北京-----11月 10号 已开班
  • 北京-----11月 12号 已开班
  • 北京-----11月 14号 名额仅限10名

在线答疑

更多>>
姓名
手机
点击我报名

咨询热线

学习c++培训,就得去专业的权威的最具性价比的智盟c++培训中心
当前位置:IT培训 >> C++培训专题 >> C++培训

指针与引用有什么区别?

分类:c++培训专题|来源:CSDN|发布时间:2011-4-11 8:41:17

指针(Pointer)持有另一个对象的地址,使我们能够间接地操作这个对象。引用(Reference)有时候又称为别名,它可以用作对象的另一个名字。它们都是让你间接引用其他对象。


从语法的角度比较,二者主要区别如下:


1)指针用操作符"*"和"->",引用使用操作符"."。


2)引用在创建的同时必须初始化,即引用到一个有效的对象;而指针在定义的时候可以不初始化,在定义后面的任何地方重新赋值。


3)指针可以被重新赋值以指向另一个不同的对象。但是,引用则总是指向在初始化时被指定的对象,以后不能改变。


4)"sizeof(引用)"得到的是所指向对象的大小,而"sizeof(指针)"得到的是指针本身的大小。


5)指针和引用的加法(+)、减法(-)、自增(++)、自减(--)等运算意义不一样。


6)引用不支持引用数组,指针支持指针数组。


深入讨论:


上述答案可能不够完整,但是基本覆盖了指针和引用的主要区别。可能一些读者还想添加如下两个区别:


1)不存在NULL引用,引用必须与合法的存储单元关联,而指针则可以是NULL。


2)程序为指针变量分配内存区域,而引用不分配内存区域。对此,我不敢苟同。


首先,我们来看看是否存在NULL引用。C++不允许将引用初始化为NULL,所以如下的代码无法通过编译:


char& rc = NULL; // 让引用指向空值


但是,使用如下代码,我们就可以创建一个NULL引用,该代码的执行结果将是不确定的。


char *pc = 0; // 设置指针为空值


char& rc = *pc; // 让引用指向空值


接着,让我们看看程序是否为引用分配内存区域呢?C++标准并没有对此作出规定,所以我认为这完全取决于编译器,我们不能武断地说程序会或不会为引用分配内存区域。


对于上述指针和引用区别中的第三点,我们可以以另外一种方式来陈述:引用全部是const类型,它总是指向在初始化时被指定的对象;指针有const类型。让我们借用《C++ FAQ》第二版章节11.13中的示例来解释一下这句话。


class Fred { };


void f(Fred& const a);


void g(const Fred& const a);


void sample(Fred& a)


{


Fred& b = a;


const Fred& c = a;


}


如果使用gcc,你会得到一些错误信息,该程序将无法通过编译。

本文来自智盟无忧net培训网(http://www.netpeixun.com),转摘请注明出处

本文标题:C++培训  TAG标签:PPT培训 WORD培训 EXCEL培训

c++中的引用,就变量的别名

版权声明:此网站相关信息如有侵犯您的版权,请及时通知我们,我们将及时加上您的版权信息或删除其内容,并向您致以诚挚的歉意。
报名咨询地址: 北京丰台区刘家窑桥东大陆写字楼A203室(每天早晨9:00到晚上18:00全天提供咨询和报名服务,周末照常服务)
IT培训/计算机培训/电脑培训/计算机上门培训 地址: 北京丰台区刘家窑桥东大陆写字楼A203室 邮政编码:100079
电脑培训/IT培训团体/企业培训联系电话:15101019808   010-52850976
MSN:zhimeng@live.cn QQ:120181366 || 客服邮箱:120181366@qq.com
Copyright(c) 2010 智盟科技 法律顾问:徐涛律师
京ICP备10025228号

特色培训:c++培训office培训vc++培训mfc培训vc++.net培训windows sdk培训vc界面培训