福大计算机二级c语言课件第6章.pptVIP

福大计算机二级c语言课件第6章.ppt

此“教育”领域文档为创作者个人分享资料,不作为权威性指导和指引,仅供参考
  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语言课件第6章.ppt

§6.1 §6.2 (一)变量的指针(即地址) 、指向变量的指针变量 存储在内存储器中的每个数据都是用若干个单元(字节)存放。 如一个int型数据占2个单元 为能访问这些内存单元,我们给每个内存单元编号。内存单元的编号称为地址。 变量的指针:存储变量值——一个数据的若干个单元的首地址(其中第一个单元的地址) 例1:? int j=153; char c=’A’; long m=72561; j的指针为2000 c的指针为2002 m的指针为2003 指向变量的指针变量 例1 int j=153; char c=’A’; long m=72561; 一.定义指针变量:与以前学的普通变量一样,但变量名前加一个* 例如: int a,b,*p,x; char *w,c1,c2; 定义p为指向int型变量的指针变量、 w为指向char型变量的指针变量 注意:一个指针变量只能指向所定义的类型变量,如w只能指向char型变量,不能时而指向一个char型变量,时而又指向一个float型变量。 至于p、w究竟指向哪一个变量,取决于向p、w赋予的地址。 二、指针变量初始化和赋值: 指针变量同普通变量一样,使用之前不仅要定义,而且必须赋予具体的值。指针变量的赋值只能赋予指针(地址),决不能赋予任何其它数据。 int j=153 , k=-42 ,*p=j ,*q; q=k; 定义p与q为指针变量 (可认为*p与*q为int型变量) 注意: (1)? 指针变量初始化的方法: int a , *p=a; int i,j,*p1,*p2; i=a; j=b; p1=i; p2=j; 如右上图所示 接着执行 p2=p1; 使p2与p1都指向i, 此时*p2与*p1都 等价于i, 若执行 *p2=*p1; 即执行 j=i; (表示把p1指向的变量i中的内容赋给p2所指向的变量j中) 四、若指针变量p指向普通变量j (即p=j) 则有 1、*j ——*(j) ——*p——j 2、*p——(*p)——j——p *j 无意义 main( ) {float a,b,*p,*q,*t; p=a;q=b; a=12.8;b=-6.1; t=p;p=q;q=t; printf(”(1)%f,%f\n”,a,b); printf(”(2)%f,%f\n”,*p,*q);} (二)一维数组元素的 指针、指向数组元素 的指针变量: 例 int a[ 5 ] ; 数组元素的指针(地址): a+i 或 a[ i ] 数组的指针 ——数组的起始地址: a 或 a[ 0 ] 指向数组元素的指针变量:存放数组元素的指针的变量 注意:例 int a[5] ; 中虽然有 a[4]=a[3]+2 =a[2]+4 =a[1]+6 =a[0]+8 但按规定(与上面矛盾)有: a表示a[0] a+1表示a[1] a+2表示a[2] ······ 根据指针运算有: *a表示a[0] *(a+1)表示a[1] *(a+2)表示a[2] ······ 若有:int a[ 5 ], *p=a; 则表示数组元素a[i] : 1)下标法: 即用a[i]形式访问数组元素。 2)指针法: *(a+i) 或*(p+i) 或p[i] 或第i次执行下面循环体时的*p for(p=a;pa+5;p++) { · · · · · · *p · · · · · · } 一.指向数组元素的指针变量定义、初始化和赋值同(一)中一、二 main( ) {int a[5]={15,-42,61,12,65}, k=2, *p1,*p2=a[4],*p3; p3=a;p1=a[k+1];p3++; printf(”%d,%d,%d\n”, *p1,*p2,*p3 ); } 12,65,-42 main() a[0]=6 {int a[3],i,*p; a[1]=4 p=a; a[2]=2 for(i=0;i3;i++) a[0]=6

文档评论(0)

实验室仪器管理 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档