c程序设计案例汇编07.pptVIP

  1. 1、本文档共90页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
c程序设计案例汇编07

C程序设计案例汇编;第七章 指针;7.1 指针的基本概念 ;1.案例7-1的源程序;{ p=p1; p1=p2; p2=p; } printf(a=%d,b=%d\n,a,b); printf(较大者为%d,较小者为%d\n,*p1,*p2); } ;2.归纳分析 ;指针变量是存储另一个变量地址的变量,也就是存放变量地址的变量。通过指针变量p访问整型变量i的方式就是对数据的“间接访问”方式。指针变量p与整型变量i的关系如图7-2。;指针变量与一般变量一样,必须先定义后使用。指针变量定义的一般形式为: 类型说明符 *变量名; 其中变量名前的*说明该变量为指针类型的变量,称为指针变量。指针变量也具有类型,其类型是指针变量所指对象的类型。例如: float *p; /*定义p为指向单精度实型变量的指针变量*/ int *pi; /*定义pi为指向整型变量的指针变量*/ double *pc; /*定义pc为指向双精度实型变量的指针变量*/ C语言提供了两种与指针有关的运算符: :取地址运算符合。 *:指针运算符(又称“间接访问”运算符);源程序的第十一、十二行: p1=a; p2=b; p1=a;语句的作用是将整型变量a的地址存放在指针变量p1中,p2=b; 语句的作用是将整型变量b的地址存放在指针变量p2中。 源程序的第十三~十八行: if (ab) { p=p1; p1=p2; p2=p; } if条件语句的作用是:如果a小于b,则将指针变量p1与指针变量p2中的值进行交换。使得p1指向a和b中的较大者。当输入a=78,b=92时,由于a小于b,将p1和p2交换。p1和p2交换前的情况见图7-3,p1和p2交换后的情况见图7-4。;禽早终务吼培碳梗彩摆部驾赏劳绵台羊括捂迄衷卸日嗽镣建换压脊聪导矩c程序设计案例汇编07c程序设计案例汇编07;请注意,a和b的值并没有交换,它们仍保持原来的值,但p1和p2的值改变了。p1的值原来为a,后来变成b,p2的值原来为b,后来变成a。 源程序的第十九行: printf(a=%d,b=%d\n,a,b); 输出整型变量a、b的值。因为a和b的值并没有交换,当输入a=78,b=92时,输出结果为a=78,b=92。 源程序的第二十行: printf(较大者为%d,较小者为%d\n,*p1,*p2); 输出指针变量p1、p2所指向变量的值。当输入a=78,b=92时,因为p1和p2的值改变了,这样在输出*p1和*p2时,实际输出变量b和变量a的值,所以先输出92,然后输出78。*p1是使用指针变量p1,此时*是运算符,表示取指针所指向的内容,与在定义指针变量时的*意义不同。;7.2指针与数组 ;1.案例7-2的源程序;2.归纳分析 ;数组的起始地址,也就是数组第一个元素的地址。因此,将score数组的起始地址赋给指针变量p也可以用以下语句实现: p=score[0]; p=score[0];语句的作用就是把score[0]元素的地址赋给指针变量p,也就是说,p指向score数组的第0号元素,将指针变量p指向数组的起始地址的效果如图7-6。;源程序的第八、九行: for (i=0;i10;i++) scanf(%d,p++); 这个for循环语句的作用是利用指向数组的指针变量将键盘输入的整数存入score数组中。循环变量i取值0、1、2、……、9,循环体共执行10次,分别表示输入第1、2、3、……、10个学生成绩。 循环体每执行1次,指针变量p的值加1,C语言规定,p=p+1表示将指向变量p指向数组的下一元素,因为p中存放的是数组元素的地址,所以scanf(%d,p++);输入语句中p++前不加,指针的移动效果如图7-7。 ;源程序的第十一~十三行: p=score; for (i=0;i10;i++,p++) printf(%d ,*p); 因为执行完源程序的第八、九行for循环后,指针变量p已指向score数组的末尾,在执行这个for循环时,指针变量的起始值不是score[0],而是score[10],因此在执行这个for循环之前,p=score;语句是将指针变量重新指向score数组的第0个元素。 for循环语句的作用是利用指针变量p访问数组中的元素,将score数组中的学生成绩输出。循环变量i取值0、1、2、……、9,循环体共执行10次,分别表示输出第1、2、3、……、10个学生成绩,i=0时,指针变量p指向score数组的第0个元素,*p代表

文档评论(0)

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

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

1亿VIP精品文档

相关文档