C++分析研究  
C++
日历
<2013年8月>
28293031123
45678910
11121314151617
18192021222324
25262728293031
1234567
统计
  • 随笔 - 92
  • 文章 - 4
  • 评论 - 4
  • 引用 - 0

导航

常用链接

留言簿

随笔档案

文章档案

搜索

  •  

最新评论

阅读排行榜

评论排行榜

 
  一、指针:内容是指示一个内存地址的变量;类型是指示编译器怎么解释指针内容指向地址中的内容,以及该内存区域有多大;

  例子:

  [cpp]

  int i = 0;

  int * pi = &i;

  printf(“pi = %x  \n”, pi);     // 打印pi的内容: 0x2000

  printf(“*pi= %d  \n” , *pi);   // 打印pi指向地址中的值: 5

  printf(“&pi= %x  \n”, &pi);    // 打印pi的地址: 0x100

  从汇编的角度来看,指针是这样的:

  int i = 0;

  010E139E  mov         dword ptr [i],0

  int * pi = &i;

  010E13A5  lea         eax,[i]

  010E13A8  mov         dword ptr [pi],eax

  二、数组:是一个单一数据类型对象的集合。其中单个对象没有被命名,通过索引访问证券从业代考 期货从业代考

  数组名和指针的区别:数组名的内涵在于其指代实体是一种数据结构,这种数据结构就是数组。数组名的外延在于其可以转换为指向其指代实体的指针,而且是一个指针常量。指向数组的指针则是另外一种变量类型,仅仅意味着数组的存放地址

  注意:虽然数组名可以转换为指向其指代实体的指针,但是它只能被看作一个指针常量,不能被修改,如下护士代考 心理咨询师代考

  [cpp]

  int intArray[10];

  intArray++; // 错误

  “指针和数组等价”说的是什么?索引操作相同,例如: p[2];  a[2];

  三、引用(reference)是一个对象的别名。用对象初始化引用后,对象的名字和引用都指向该对象;

  引用是如何实现的? 从汇编语言的角度来看,指针和引用是一样的:

  [cpp]

  int i = 0;

  00E9139E  mov         dword ptr [i],0

  int & ref = i;

  00E913A5  lea         eax,[i]

  00E913A8  mov         dword ptr [ref],eax

  int * pi = &i;

  00E913AB  lea         eax,[i]

  00E913AE  mov         dword ptr [pi],eax

  指针和引用的区别(从C++使用角度来看):

  不存在空引用

  引用要初始化

  引用初始化后,不能指向另一个对象

  这是由编译阶段保证的。

  备注:一个指向非常量的引用不能用字面值或者临时值初始化;但是一个指向常量的引用可以会计从业代考 会计职称代考

  例子:

  [cpp]

  double&d = 12.3;  // error!

  const double& d = 12.3;

posted on 2013-03-12 20:18 HAOSOLA 阅读(344) 评论(0)  编辑 收藏 引用

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理


 
Copyright © HAOSOLA Powered by: 博客园 模板提供:沪江博客
PK10开奖 PK10开奖