Chinaunix首页 | 论坛 | 博客
  • 博客访问: 508389
  • 博文数量: 59
  • 博客积分: 2968
  • 博客等级: 少校
  • 技术积分: 648
  • 用 户 组: 普通用户
  • 注册时间: 2009-04-23 22:20
个人简介

IT圈泥瓦匠一枚,混迹过国产处理器圈,从事Linux BSP开发混一软件经理职务,现漂浮在云端从事OpenStack-Nova相关设计工作。

文章分类

全部博文(59)

文章存档

2014年(1)

2013年(2)

2012年(7)

2011年(26)

2010年(9)

2009年(14)

我的朋友

分类: LINUX

2009-04-26 12:22:18

引用与指针的区别:

引用
一个变量的别名,是我们给变量的内存空间起另外一个名字
指针:
指向另一个内存空间的变量,我们可以通过它来索引另一个内存空间的内容,本身有自己的
      内存空间

区别:
    <1> 指针是一个实体,间接访问变量;而引用仅是个别名,直接访问变量。
    <2> 引用只能在初始化的时候初始化,以后不可改变(引用在开始的时候就绑定到了一个内存空间  (开始必须赋初值),所以他只能是这个内存空间的名字,而不能改成其他的,当然可以改变这个内存空间的值);而指针可以随便改变
    <3> 引用使用时无需解引用(*),指针需要解引用
    <4> 引用没有 const,指针有 const,const 的指针不可变;
        引用可简单认为是 &a <==> int * const p;
    <5> 引用不能为空,指针可以为空
    <6> “sizeof 引用”得到的是所指向的变量(对象)的大小,而“sizeof 指针”得到的是指针本身(所  指向的变量或对象的地址)的大小

联系:
    <1> 引用在语言内部用指针实现(如何实现?可简单认为是 &a <==> int * const p)

引用的一些规则如下:
    <1> 引用被创建的同时必须被初始化(指针则可以在任何时候被初始化)。
    <2> 不能有NULL 引用,引用必须与合法的存储单元关联(指针则可以是NULL)。
    <3> 一旦引用被初始化,就不能改变引用的关系(指针则可以随时改变所指的对象)。
阅读(849) | 评论(0) | 转发(0) |
0

上一篇:Linux中软中断机制分析

下一篇:高端内存

给主人留下些什么吧!~~