[理学]C语言第7章.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文档。上传文档
查看更多
[理学]C语言第7章

main( ) { int a,b,c; scanf(“%d %d”,a,b); c=max(a,b); printf(“max=%d”,c); } int max( int x,int y) { int z; if (xy) z=x; else z=y; return z; } main( ) { int a,b,c,(*p)( ); scanf(“%d %d”,a,b); p=max; c=(*p)(a,b); printf(“max=%d”,c); } 说明: ⑴将函数名赋给指针变量不加括号; ⑵在用指向函数的指针调用函数时仍需用实参代替形参; ⑶函数调用可以通过函数名调用,也可以通过函数指针调用; ⑷指向函数的指针变量,可指向同类型的不同函数; ⑸函数指针变量:p+n,p++,p--,p-n无意义. 例:main() { int (*p)( ); p=print1; (*p)(123); p=print2; (*p)(456); } print1(int x) { printf(“%d\n”,x); } print2( int y) { printf(“%d\n”,y); } 例:写一函数,输入一个十六进制数,输出相应的十进制数. main( ) {char a[81]; int c, (*p)( ); int change(char *s); gets(a); p=change; c=(*p)(a ); printf(“%d “,c); } change(char *s) {int sum=0; while( *s) { if(*s=‘a’*s=‘z’) sum=sum*16+*s-’a’+10; else if(*s=‘A’*s=‘Z’) sum=sum*16+*s-’A’+10; else if(*s=‘0’*s=‘9’) sum=sum*16+*s-’0’; s++; } return sum; } 7.6指针型函数 返回指针值的函数:函数带回的值的类型是指针类型. 定义: 数据类型 *函数名(形参表) { 局部变量定义; 语句;} 其中:数据类型为函数返回的指针指向数据的类型. 例: int *P( int x, int y) { } 定义了一个函数名字为p,返回值为指向整型数据的指针.这就要求在函数体中有返回指针或地址的语句。如:“return (变量名);”或“return (指针变量);”。 注意与 int (*p)( )的区别. 应用: 例:有若干个学生的成绩(每个学生4门课),要求在用户输入学生序号以后,能输出该学生的全部成绩,用指针函数来实现. main( ) { float score[ ][4]={{60,70,80,90},{56,89,67,88},{34,78,90,66}}; float *search(float (*fp)[4],int n); float *p; int i,m; scanf(“%d”,m); p=search(score,m); for(i=0;i4;i++) printf(“%5.2f”,*(p+i)); } float *search(float (*fp)[4],int n) {float *pt; pt=*(fp+n); return pt; } pt=*fp+n; 例:对上例中的学生,找出其中有不及格课程的学生及其学号. main( ) { float score[ ][4]={{60,70,80,90},{56,89,67,88},{34,78,90,66}}; float *search(float (*fp)[4]); float *p; int i,j; for(i=0;i3;i++) { p=search(score+i); if(p==*(score+i)) { printf(“No.%d scores:”,i+1); for(j=0;j4;j++)

文档评论(0)

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

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

版权声明书
用户编号:5024214302000003

1亿VIP精品文档

相关文档