10-2.第十章 指针.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文档。上传文档
查看更多
10-2.第十章 指针

* 11.5 函数的指针 每一个函数都占用一段内存单元,可用指针变量指向一个函数,从而可以通过指针变量来访问该函数。 定义一般形式: 数据类型 (*指针变量名)() 例如:int (*p)(); float (*q)(); 程序举例:求a和b中的大数。 int max(int x,int y) { int z; if(xy) z=x; else z=y; return (z); } main() { int (*p)(); int a,b,c; p=max; scanf(“%d,%d”,a,b); c=(*p)(a,b); printf(“max=%d”,c);} 11.6 返回指针值的函数 定义一般形式: 类型名 *函数名(参数表) 例如:编写函数int *add(int x,int y,int *p),实现求两个数x,y之和,并返回存放和的变量的指针。 函数定义: int *add(int x,int y, int *p) { *p=x+y; return p; } int *add(int x,int y, int *p) { *p=x+y; return p; } main() {int a,b,sum; int *q; scanf(%d,%d,a,b); q=add(a,b,sum); printf(%d,*q); } 11.7 指针数组和指向指针的指针 一、指针数组 若数组中的每一个元素都是指针类型的数据, 该数组称为指针数组,常用它来处理多个字符串. 定义一般形式: 类型名 *数组名[数组长度] 例如:char *p[5]; int *a[4]; 程序举例:将月份值转换为相应英文名称的函数。 char *month_name(int n) { char *month[13]={“Illegal month”,“January”, “February”,“March”,“April”,“May”, “June”,“July”,“August”,“September”, “October”,“November”,“December”}; if(n=1n=12) return(month[n]); else return(month[0]); } main() { int k; char *p; printf(“\n\n请输入一个月份值:”); scanf(“%d”,k); p=month_name(k); printf(“英文名称为:%s”,p); } 主函数如下: 二、指向指针的指针 指向指针型数据的指针变量,称为指向指针的指针。 定义一般形式: 类型名 **指针变量名 例如: main() { int i=4; int *w=i; int **p=w; printf(“%d,%d”,*w,**p); } w i 4 p w i main() {char str[20]; int n; gets(str); scanf(%d,n); str_cut(str,n); puts(str); } 例1. 截取一字符串的前n个字符并输出. str_cut(char *p,int n) {*(p+n)=\0; } void sort(int x[] ,int n) {int i,j,k,t; for(i=0;in-1;i++) {k=i; for(j=i+1;jn;j++) if(x[j]x[k]) k=j; t=x[k];x[k]=x[i];x[i]=t; } } 例2. 选择法排序. main() {int a[10],i; for(i=0;i10;i++) scanf(%d,a[i]); sort(a,10); for(i=0;i10;i++) printf(%4d,a[i]); printf(\n);} *

文档评论(0)

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

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

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档