C++中关于指针入门.pdfVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
C++中关于指针入门 其实指针就像是其它变量一样,所不同的是一般的变量包含的是实际的真 实的数据,而指针是一个指示器,它告知程序在内存的哪块区域可以找到 数据。这是一个特别重要的概念,有许多程序和算法都是围绕指针而设计 的,如链表。 开头学 如何定义一个指针呢?就像你定义一个其它变量一样,只不过你要在 指针名字前加上一个星号。我们来看一个例子:下面这个程序定义了两个 指针,它们都是指向整型数据。 int* pNumberOne; int* pNumberTwo; 你留意到在两个变量名前的“p”前缀了吗?这是程序员通常在定义 指针时的 一个习惯,以提高便程序的阅读性,表示这是个指针。现在让我们来 初始化这两个指针: pNumberOne = pNumberTwo = int *pPointer; // 现在给它们赋值: nNumber = 15; pPointer = //打印出变量 nNumber 的值: cout int *pPointer; void SomeFunction(); { int nNumber; nNumber = 25; //让指针指向 nNumber: pPointer = } void main() { SomeFunction(); //为 pPointer 赋值 //为什么这里失败了?为什么没有得到 25 cout int *pPointer; void SomeFunction() { // 让指针指向一个新的整型 pPointer = new int; *pPointer = 25; } void main() { SomeFunction(); // 为 pPointer 赋值 cout 调用时,它安排了一个内存,并让 pPointer 指向它。这一次,当函 数返回时,新的内存区域被保存下来,所以 pPointer 始终指着有用的信 息,这是由于了动态安排。但是你再认真读读上面这个程序,虽然它得到 了正确结果,可仍有一个严峻的错误。 安排了内存,别忘了回收 太简单了,怎么会还有严峻的错误!其实要改正并不难。问题是:你 动态地安排了一个内存空间,可它绝不会被自动删除。也就是说,这块内 存空间会始终存在,直到你告知电脑你已经使用完了。可结果是,你并没 有告知电脑你已不再需要这块内存空间了,所以它会连续占据着内存空间 造成铺张,甚至你的程序运行完毕,其它程序运行时它还存在。当这样的 问题积存到肯定程度,最终将导致系统崩溃。所以这是很重要的,在你用 完它以后,请释放它的空间,如:delete pPointer; 这样就差不多了,你不得不当心。在这你终止了一个有效的指针 (一 个的确指向某个内存的指针)。 下面的程序,考试大提示它不会铺张任何的内存: #include int *pPointer; void SomeFunction() { // 让指针指向一个新的整型 pPointer = new int; *pPointer = 25; } void main() { SomeFunction(); //为 pPointer 赋值 cout void AddFive(int Number) { Number = Number + 5; } void main() { int nMyNumber = 18; cout void AddFive(int* Number) { *Number = *Number + 5; void main() { int nMyNumber = 18;

文档评论(0)

182****9516 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档