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

初学者指针指南

 2006-04-11 22:54:17 来源:WEB开发网   
核心提示: 那么,如何解决这个问题呢?答案是使用一种名为动态分配的技术,初学者指针指南(3),请注意:在这一点上,C和C++是不同的,所以pPointer仍然指向某些有用的内容,这就是动态分配了!请确信你已经搞懂了这一点,既然大多数开发者正在使用C++,那么下面的代码就使用C++来编写

那么,如何解决这个问题呢?答案是使用一种名为动态分配的技术。请注意:在这一点上,C和C++是不同的。既然大多数开发者正在使用C++,那么下面的代码就使用C++来编写。

动态分配

动态分配也许可以算是指针的关键技术了。它被用于在没有定义变量的情况下分配内存,然后由一个指针指向这段内存。虽然这个概念好像很让人糊涂,其实它很简单。以下的代码解说了如何为一个整数分配内存空间:

int *pNumber;

pNumber = new int;

第一行代码声明了一个指针pNumber,第二行代码分配了一个整数的空间,并使pNumber指向这一段新分配的内存。下面是另外一个例子,这一次使用了一个double:

double *pDouble;

pDouble = new double;

这些规则是相同的T,所以你应该可以很容易地掌握。

动态分配和本地变量的不同点是:你分配的内存在函数返回和语句块结束的时候不会被释放,所以,如果你用动态分配来重新编写上面的代码,那么它就会正常工作了:

#include <stdio.h>
int *pPointer;
void SomeFunction()
{
  // 使pPointer指向一个new的整数
  pPointer = new int;
  *pPointer = 25;
}
void main()
{
  SomeFunction(); // 让pPointer指向某些东西
  printf("Value of *pPointer: %d\n", *pPointer);
}

请通读并编译以上的示例代码,并确信你已经弄懂了它为何如此工作。当调用SomeFunction的时候,它分配了一段内存,并使pPointer指向这段内存。这一次当函数返回的时候,这段new的内存就会完好保留,所以pPointer仍然指向某些有用的内容。这就是动态分配了!请确信你已经搞懂了这一点,然后继续阅读关于这段代码中的一个严重错误。

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

Tags:初学者 指针 指南

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