c语言二级考试重点第8章 地址和指针.pptVIP

c语言二级考试重点第8章 地址和指针.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语言二级考试重点第8章 地址和指针

第八章 地址和指针 考点: 1.变量的地址和指针 2.指针变量的操作 3.函数之间地址的传递 考点1 变量的地址和指针 1.地址和指针的定义 (1)内存地址:计算机的内存是以字节为单位的一片连续的存储看空间,每一个字节都有一个编号,这个编号可就是内存地址。 说明: a.在程序中只需要指出变量名,无须知道每个变量在内存中的具体地址,每个变量与具体地址的联系由C语言编译系统完成。 b.程序中对变量的操作(存、取),也就是对某个地址的存储单元进行操作。这种直接按照变量的地址存取变量的方式称为直接存储方式。 考点1 变量的地址和指针 (2)指针变量 用来存放地址的变量称为指针变量。如果变量a的地址保存在变量p中,这是,访问变量a,可以先找到存放地址的变量p,从中读出a的地址,再去访问a变量的值。 (指针变量p存放了变量a的地址,此时,指针p就指向了a存储单元) 考点1 变量的地址和指针 2。指针变量的定义和指针变量的基类型 (1)指针变量的定义 格式:类型名称 *指针变量名; int *x_pointer; //定义了一个指针变量x_pointer 考点2.指针变量的操作 1.给指针变量赋地址 (1)通过求地址运算符()获得变量的地址。 例子: int k=1,*p; p=k; 考点2.指针变量的操作 (2)通过指针变量获得地址值。 例子: int *p,*q,k=2; p=k; q=p; (3)通过标准函数获得地址值 在c语言中,可以通过调用库函数malloc()和calloc(),在内存中开辟动态存储单元,并把所开辟的动态存储单元的地址值返回给某个指针变量。 考点2.指针变量的操作 2.给指针赋空值 Null是在studio.h中定义的一个预定义符。Null的代码值为“0” p=Null,称p为空指针 等价于p=‘\0’或者是p=0; 注意:p指针并不是指向地址为0的存储单元,而是一个具有确定的“空”值。 考点2.指针变量的操作 3.对指针变量的操作 (1)通过指针来引用一个存储单元 * :间接访问运算符号,又称为间址运算符。 例子: int *p,k=2,a; p=k; a=*p; 注解:a=*p,将p所指向的存储单元的值取出,赋值给变量a 考点2.指针变量的操作 (2)移动指针 定义:是对指针变量加上或者减去一个整数,或者通过赋值运算,使指针指向相邻的存储单元,因而,只有当指针指向一串连续的存储单元时,指针的一定才有意义。 注意:指针每次一个存储单元,1个长度占多少字节的存储空间,视基类型而定 例子:用指针变量指向数组元素 void main() { int a[10]; int *p,i; for (i=0;i10;i++) { scanf(“%d”,a[i]); } for (p=a;p(a+10);p++) { printf(“%d”,*p); } } 历年真题 【2005.9】设有定义int n1=0,n2,*p=n2,*q=n1;以下赋值语句中与n2=n1;语句等价的是() A.*p=*q; B.p=q; C.*p=n2; D.p=*q; #include stdio.h void main() { int n1=0,n2,*p=n2,*q=n1; *p=*q; printf(%d,*p); } 历年真题 【2007.4】设已有定义:float x;则下列对指针变量p进行定义且赋值的语句中正确的是() A .float *p=1024; B.int *p=(float)x; C.float p=x; D.float *p=x; D等价于: float *p; p=x; 历年真题 2.下列程序的输出结果是() #include stdio.h #include stdlib.h void main() { int *s1,*s2; int m; s1=s2=(int *)malloc(sizeof(int)); *s1=15; *s2=20; m=*s1+*s2; printf(%d\n,m); } 考点2.指针变量的操作 (3)指针的比较 If ( p q ) printf (“p points to lower memory than q.\n”) 注:比较的是地址值。 #include stdio.h //实现一个函数,它的功能是,实现两个数的交换。 void swap(int a,int b)//形式参数简称为形参 { int t; printf((1)a=%d,b=%d\n,a,b); t=a; a=b; b=t; printf

文档评论(0)

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

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

1亿VIP精品文档

相关文档