网站导航免费论文 原创论文 论文搜索 原创论文 网学软件 学术大家 资料中心 会员中心 问题解答 原创论文 论文素材 设计下载 最新论文 下载排行 论文上传 在线投稿 联系我们
返回网学首页
网学联系
最新论文 推荐专题 热门论文 素材专题
当前位置: 网学 > 编程文档 > VC++ > 正文
Visual C++初学者指针学习祥解指南
来源:Http://myeducs.cn 联系QQ:点击这里给我发消息 作者: 用户投稿 来源: 网络 发布时间: 12/10/15
下载{$ArticleTitle}原创论文样式
  何为指针?

  指针基本上和其它的变量一样,唯一的一点不同就是指针并不包含实际的数据,而是包含了一个指向内存位置的地址,你可以在这个地址找到某些信息。这是一个很重要的概念,并且许多程序或者思想都是将指针作为它们的设计基础,例如链表。

  开始

  如何定义一个指针?呃,就像定义其它的变量一样,不过你还需要在变量名之前添加一个星号。例如,下面的代码创建了两个指向整数的指针:

  int* pNumberOne;

   int* pNumberTwo;

  注意到变量名的前缀“p”了吗?这是编写代码的一个习惯,用来表示这个变量是一个指针。

  现在,让我们把这些指针指向一些实际的值吧:

  pNumberOne = &some_number;

   pNumberTwo = &some_other_number;

  “&”标志应该读作“the address of(……的地址)”,它的作用是返回一个变量的内存地址,而不是这个变量本身。那么在这个例子中,pNumberOne就是some_number的地址,亦称作pNumberOne指向some_number。

  现在,如果我们想使用some_number的地址的话,那么我们就可以使用pNumberOne了。如果我们希望经由pNumberOne而使用some_number的值的话,我们可以用*pNumberOne。“*”应该读作“the memory location pointed to by(由……指向的内存位置)”,它用来取得指针所指向的值。不过指针声明的情况例外,如“int *pNumber”。

  到现在都学到什么了(一个例子)

  咻!要理解的东西太多了,所以在此我建议,如果你还是不理解以上的概念的话,那么最好再通读一遍;指针是一个复杂的主题,要掌握它是要花些时间的。

  这里有一个示例,解说了上面讨论的那些概念。它是由C编写成,并不带有C++的那些扩展。

  #include

   void main()

   {

   // 声明变量:

   int nNumber;

   int *pPointer;

   // 现在,给它们赋值:

   nNumber = 15;

   pPointer = &nNumber;

   // 打印nNumber的值:

   printf("nNumber is equal to : %d\n", nNumber);

   // 现在,通过pPointer来控制nNumber:

   *pPointer = 25;

   // 证明经过上面的代码之后,nNumber的值已经改变了:

   printf("nNumber is equal to : %d\n", nNumber);

    }

  请通读并编译以上代码,并确信你已经弄懂了它是如何工作的。然后,当你准备好了以后,就往下读吧!

  陷阱!

  看看你是否能指出以下程序的缺陷:

  #include

   int *pPointer;

   void SomeFunction()

   {

   int nNumber;

   nNumber = 25;

   // 使pPointer指向nNumber:

   pPointer = &nNumber;

   }

   void main()

   {

   SomeFunction(); // 让pPointer指向某些东西

   // 为什么这样会失败?

   printf("Value of *pPointer: %d\n", *pPointer);

   }


网学推荐

免费论文

原创论文

浏览:
设为首页 | 加入收藏 | 论文首页 | 论文专题 | 设计下载 | 网学软件 | 论文模板 | 论文资源 | 程序设计 | 关于网学 | 站内搜索 | 网学留言 | 友情链接 | 资料中心
版权所有 QQ:3710167 邮箱:3710167@qq.com 网学网 [Myeducs.cn] 您电脑的分辨率是 像素
Copyright 2008-2015 myeducs.Cn www.myeducs.Cn All Rights Reserved
湘ICP备09003080号