WEB开发网
开发学院软件开发VC 初学者指针指南 阅读

初学者指针指南

 2006-04-11 22:54:17 来源:WEB开发网   
核心提示: 你可以试着自己编写一个程序来证明这一点,注意到AddFive函数中Number之前的“*”的重要性了吗?这就是告知编译器我们要在指针Number指向的数字上加5,初学者指针指南(6),而不是向指针本身加5,最后要注意的一点是,因此,我们必须使用一种不同的转换方式,你

你可以试着自己编写一个程序来证明这一点。注意到AddFive函数中Number之前的“*”的重要性了吗?这就是告知编译器我们要在指针Number指向的数字上加5,而不是向指针本身加5。

最后要注意的一点是,你亦可以在函数中返回指针,像下面这个样子:

int * MyFunction();

在这个例子中,MyFunction返回了一个指向整数的指针。

指向类的指针

关于指针,我还有还有两点需要提醒你。其中之一是指向结构或类的指针。你可以像这样定义一个类:

class MyClass
{
public:
  int m_Number;
  char m_Character;
};

然后,你可以定义一个MyClass的变量:

MyClass thing;

你应该已经知道这些了,如果还没有的话,你需要阅读一下这方面的资料。你可以这样定义一个指向MyClass的指针:

MyClass *thing;

就像你期望的一样。然后,你可以为这个指针分配一些内存:

thing = new MyClass;

这就是问题之所在了——你将如何使用这个指针?呃,通常你会这么写:“thing.m_Number”,但是对于这个例子不行,因为thing并非一个MyClass,而是一个指向MyClass的指针,所以它本身并不包含一个名为“m_Number”的变量;它指向的结构才包含这个m_Number。因此,我们必须使用一种不同的转换方式。这就是将“.”(点)替换为一个“->”(横线和一个大于号)。请看下面这个例子:

class MyClass
{
public:
  int m_Number;
  char m_Character;
};
void main()
{
  MyClass *pPointer;
  pPointer = new MyClass;
  pPointer->m_Number = 10;
  pPointer->m_Character = 's';
  delete pPointer;
}

上一页  1 2 3 4 5 6 7 8 9 10  下一页

Tags:初学者 指针 指南

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接