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

初学者指针指南

 2006-04-11 22:54:17 来源:WEB开发网   
核心提示: #include <stdio.h>void AddFive(int Number){ Number = Number + 5;}void main(){ int nMyNumber = 18; printf("M

#include <stdio.h>
void AddFive(int Number)
{
  Number = Number + 5;
}
void main()
{
  int nMyNumber = 18;
  printf("My original number is %d\n", nMyNumber);
  AddFive(nMyNumber);
  printf("My new number is %d\n", nMyNumber);
}

可是,这段程序AddFive中的Number是传递到这个函数中的nMyNumber的一份拷贝,而不是nMyNumber本身。因此,“Number = Number + 5”这一行则是向这份拷贝加上了5,而main()中的原始变量并没有任何变化。你可以运行这个程序试着证明这一点。

对于这个程序,我们可以向函数传递这个数字内存地址的指针。这样,我们就需要修改这个函数,使之能接收一个指向整数的指针。于是,我们可以添加一个星号,即把“void AddFive(int Number)”改为“void AddFive(int* Number)”。下面是这个修改过了的程序,注意到我们已经将nMyNumber的地址(而不是它本身)传递过去了吗?此处改动是添加了一个“&”符号,它读作(你应该回忆起来了)“the address of(……的地址)”。

#include <stdio.h>
void AddFive(int* Number)
{
  *Number = *Number + 5;
}
void main()
{
  int nMyNumber = 18;
  printf("My original number is %d\n", nMyNumber);
  AddFive(&nMyNumber);
  printf("My new number is %d\n", nMyNumber);
}

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

Tags:初学者 指针 指南

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