计算机二级C 辅导:C 中引用的本质是什么计算机二级考试

文章作者 100test 发表时间 2009:05:16 20:23:27
来源 100Test.Com百考试题网


  2009年下半年全国计算机等级考试你准备好了没?考计算机等级考试的朋友,2009年下半年全国计算机等级考试时间是2009年9月19日至23日。更多优质资料尽在百考试题论坛 百考试题在线题库
  一般的教材上讲到引用时,都是说“引用是对象的一个别名”。我认为这种定义是不清晰的,不利于初学者理解引用。至少我自己曾经被这个定义困扰了一段时间。到底什么是“别名”?
  实际上,引用的实质是位于xxxxxx地址上的一个xxxx类型的对象。比如教科书上常用的例子:
  int a = 5; //不妨假设编译器将a分配到0x400000
  int &.b = a;
  这里面b的准确意义就是,放在0x400000地址上的一个int类型对象。这里面包括了两重含义,首先b是一个int类型对象,因此他的使用完全与int类型对象一样。另外这个int类型对象的地址是0x400000,因此从底层来看,它具有指针的一些特性,无论你怎样传递,他都代表放在0x400000的那个int.
  在c 中,引用全部是const类型,定义之后不可更改。实际上“引用”对目标代码来说是不存在的,因为对于编译器来说,使用上例中的b就是使用0x400000地址的那个int.引用一经定义,就不会指向别的地址,也不会指向别的类型,因此编译器不会专门开辟空间存储这个引用,而是将发送引用的地方替换为真正的地址,接收引用的地方则替换为接受指针。
  在java中,数据对象也都是引用类型,但是这里的引用与C 有很大不同,他们不是const类型,可以指向一个空值,也可以随时更改其指向的内存地址。这实际上与C 中的指针概念完全对应。java中的引用实际上对应C 中的指针而非引用,只不过是省去了C 中指针的取地址(&.)与取值(*)操作。

  特别推荐:

  2009年9月全国计算机等级考试时间及科目预告

  2009年上半年全国计算机等级考试参考答案请进入计算机考试论坛

  2009年全国计算机等级考试报名信息汇总

  2009年NCRE考试有新变化

  2009年全国计算机等级考试-大纲

  2009年上半年全国计算机二级考试试题及答案

  2009年上半年全国计算机等级考试试题答案汇总



相关文章


计算机二级C 辅导:偶数求和计算机二级考试
计算机二级C 辅导:C 中引用的本质是什么计算机二级考试
澳大利亚华人论坛
考好网
日本华人论坛
华人移民留学论坛
英国华人论坛