当前位置:七道奇文章资讯编程技术VC/C++编程
日期:2011-03-22 13:54:00  来源:本站整理

C++指针探究(一)数据指针[VC/C++编程]

赞助商链接



  本文“C++指针探究(一)数据指针[VC/C++编程]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:

指针,在C/C++语言中一向是很受宠的;几近找不到一个不利用指针的C/C++利用.用于存储数据和程序的地址,这是指针的基本功效.用于指向整型数,用整数指针(int*);指向浮点数用浮点数指针(float*);指向构造,用对应的构造指针(struct xxx *);指向肆意地址,用无范例指针(void*).

有时刻,我们需求一些通用的指针.在C语言当中,(void*) 可以代表一切;但是在C++中,我们还有一些对比特别的指针,无法用(void*)来表示.事实上,在C++中,想找到一个通用的指针,分外是通用的函数指针简直是一个“不大概任务”.

C++是一种静态范例的语言,范例安全在C++中举足轻重.在C语言中,你可以用void*来指向一切;但在C++中,void*并不能指向一切,就算能,也失去了范例安全的意义了.范例安全常常能帮我们找出程序中潜在的一些BUG.

下面我们来探究一下,C++中若何存储各种范例数据的指针.

1.数据指针

数据指针分为两种:通例数据指针和成员数据指针

1.1 通例数据指针

这个不用阐明了,和C语言一样,定义、赋值是很简单明了的.常见的有:int*, double* 等等.

如:

int value = 123;

int * pn = &value;

1.2 成员数据指针

有以下的构造:

struct MyStruct
{
int key;
int value;
};

目前有一个构造对象:

MyStruct me;

MyStruct* pMe = &me;

我们需求 value 成员的地址,我们可以:

int * pValue = &me.value;

//或

int * pValue = &pMe->value;

当然了,这个指针仍旧是属于第一种范筹——通例数据指针.

好了,我们目前需求一种指针,它指向MyStruct中的任一数据成员,那么它应当是这样的子:

int MyStruct::* pMV = &MyStruct::value;

//或

int MyStruct::* pMK = &MyStruct::key;

这种指针的用处是用于获得结构成员在构造内的地址.我们可以通过该指针来拜候成员数据:

int value = pMe->*pMV; // 获得pMe的value成员数据.

int key = me.*pMK; // 获得me的key成员数据.


  以上是“C++指针探究(一)数据指针[VC/C++编程]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:

本文地址: 与您的QQ/BBS好友分享!
  • 好的评价 如果您觉得此文章好,就请您
      0%(0)
  • 差的评价 如果您觉得此文章差,就请您
      0%(0)

文章评论评论内容只代表网友观点,与本站立场无关!

   评论摘要(共 0 条,得分 0 分,平均 0 分) 查看完整评论
Copyright © 2020-2022 www.xiamiku.com. All Rights Reserved .