指针PPT(让你不再害怕指针).pptVIP

  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文档。上传文档
查看更多
指针PPT(让你不再害怕指针)

指针是一种普通的数据类型 指针和int,double一样,是C语言的重要组成部分,是一种常见的数据类型。 指针类型和普通的数据类型一样,是内存中的一段内存空间,有自身的地址,内存空间储存着值。 指针的不同在于int的内存空间存储了一个整数,double的内存空间存储了一个小数,而指针的内存空间存储了一个地址。 什么是地址 所有的变(常)量都是内存条中的一段01,当我们使用这个量的时候,就是获取、使用这段01。因此当我们想要访问这段内存,就需要一个内存地址。这和我们想要拜访一个人,需要知道他的门牌号一样。 指针是一种存储地址的容器 指针是一种数据类型,我们可以特定数量类型的变量称之为容器,比如int型变量是一个存放整数的容器,double型变量是一个存放小数的容器,而指针就是存放地址的容器。 也正是因为指针可以存放地址,可以使用地址,才成就了指针的特殊地位。 比如,指针让我们多了一种访问内存的方式。 指针是一种访问内存的方法 我们使用变量一般是直接使用变量名,这是因为编译器允许我们为一段内存起一个“外号”,并使用这个外号直接访问内存空间。你只需要使用外号,其他的编译器为你搞定,这叫“直接访问”。 因为有了指针,我们也可以把这个内存的“真实名姓”(地址),写在一个纸片(存储地址的容器)上,通过寻址,间接访问内存空间,这叫“间接访问”; 指针是一种内存段的表示手段 仅是从内存访问还看不出指针的用途。 我们可以声明一段内存空间,只用他的首地址表示,虽然我们只拥有这个指针,可我们可以多这个内存段“胡作非为”。 比如我们可以用int *p = (int*)malloc(sizeof (int) * n);来声明出一段可以存放n个整数的内存空间,我们可以使用p指针,对其任意操作。 要了解指针的操作,需要先认识一些比较复杂的类型,所以将先介绍一下如何完全理解一个复杂类型。要理解复杂类型其实很简单,一个类型里会出现很多运算符,他们也像普通的表达式一样,有优先级,其优先级和运算优先级一样,所以总结了一下其原则: 从变量名处起,根据运算符优先级结合,一步一步分析。 int p; ---描述一下变量p 这是一个普通的整型变量 int *p; ---描述一下变量p 首先从 P 处开始,先与*结合,所以说明 P 是一个指针 然后再与 int 结合,说明指针所指向的内容的类型为 int 型 所以 P 是一个返回整型数据的指针 int p[3]; ---描述一下p 首先从 P 处开始,先与[]结合,说明 P 是一个数组 然后与 int 结合,说明数组里的元素是整型的 所以 P 是一个由整型数据组成的数组 int *p[3]; ---描述一下变量p 首先从 P 处开始,先与[]结合(因为其优先级比*高),所以 P 是一个数组 然后再与*结合,说明数组里的元素是指针类型 然后再与 int 结合,说明指针所指向的内容的类型是整型的 所以P 是一个由返回整型数据的指针所组成的数组 int (*p)[3]; ---描述一下变量p 首先从 P 处开始,先与*结合,说明 P 是一个指针 然后再与[]结合(括号了改变优先级),说明指针所指向的内容是一个数组 然后再与 int 结合,说明数组里的元素是整型的 所以 P 是一个指向由整型数据组成的数组的指针 int **p; ---描述一下变量p 首先从 P 开始,先与*结合,说是 P 是一个指针 然后再与*结合,说明指针所指向的元素是指针 然后再与 int 结合,说明该指针所指向的元素是整型数据 int p(int); ---描述一下p 从 P 处起,先与()结合,说明 P 是一个函数 然后进入()里分析,说明该函数有一个整型变量的参数 然后再与外面的 int 结合,说明函数的返回值是一个整型数据 int (*p)(int); ---描述一下p 从 P 处开始,先与指针结合,说明 P 是一个指针 然后与()结合,说明指针指向的是一个函数 然后再与()里的int 结合,说明函数有一个 int 型的参数 再与最外层的int 结合,说明函数的返回类型是整型 所以 P 是一个指向有一个整型参数且返回类型为整型的函数的指针 int *(*p(int))[3]; ---描述一下变量p 从 P 开始,先与()结合,说明 P 是一个函数 然后进入()里面,与 int 结合,说明函数有一个整型变量参数 然后再与外面的*结合,说明函数返回的是一个指针 然后到最外面一层,先与[]结合,说明返回的指针指向的是一个数组 然后再与*结合,说明数组里的元素是指针 然后再与 in

文档评论(0)

yaocen + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档