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

初学者指针指南

 2006-04-11 22:54:17 来源:WEB开发网   
核心提示: #include <stdio.h>void main(){ int Array[3]; Array[0] = 10; Array[1] = 20; Array[2] = 30; int

#include <stdio.h>
void main()
{
  int Array[3];
  Array[0] = 10;
  Array[1] = 20;
  Array[2] = 30;
  int *pArray;
  pArray = &Array[0];
  printf("pArray points to the value %d\n", *pArray);
  pArray++;
  printf("pArray points to the value %d\n", *pArray);
  pArray++;
  printf("pArray points to the value %d\n", *pArray);
}

同样,你也可以减去值,所以pArray - 2就是pArray当前位置的前两个元素。不过,请确定你是在操作指针,而不是操作它指向的值。这种使用指针的操作在循环的时候非常有用,例如for或while循环。

请注意,如果你有了一个指针(例如int* pNumberSet),你也可以把它看作一个数组。比如pNumberSet[0]相当于*pNumberSet,pNumberSet[1]相当于*(pNumberSet + 1)。

关于数组,我还有最后一句警告。如果你用new为一个数组分配空间的话,就像下面这个样子:

int *pArray;

pArray = new int[6];

那么必须这样释放它:

delete[] pArray;

请注意delete之后的[]。这告知编译器它正在删除一个整个的数组,而不是单独的一个项目。你必须在使用数组的时候使用这种方法,否则可能会获得一个内存泄漏。

最后的话

最后要注意的是:你不能delete掉那些没有用new分配的内存,像下面这个样子:

void main()
{
  int number;
  int *pNumber = number;
  delete pNumber; // 错误:*pNumber不是用new分配的
}

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

Tags:初学者 指针 指南

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