- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
指向多维数组的指针变量
通过字符数组名引用字符串 #include stdio.h #include string.h main( ) { int i; char a[8]=First; puts(a); strcpy( a, Second“ ); for( i=0; *(a+i) != \0 ; i++ ) putchar( *(a+i) ); } #include stdio.h main( ) { char *p=First; puts(p); p=Second; for( ; *p != \0 ; p++ ) putchar(*p); } 通过字符数组名引用字符串 【思考】编写字符串比较的程序 通过字符数组名引用字符串 void main( ) { char y[10]=”987654321”, *p; p=y[2]; puts(p); } 指针数组 元素均为指针类型数据的数组,称为指针数组 定义形式为: 类型关键字 *数组名[数组长度]; 例如 char *pStr[5]; 一级指针: 指针变量中存放目标变量的地址 一级指针: 指针变量中存放目标变量的地址 命令行参数 通过命令行参数,使用户可以根据需要来决定我们的程序干什么、怎么干 当把main函数写成这样时 main(int argc, char *argv[ ]) argc的值为程序执行时参数的数目(包括命令本身) argv[i]为指向第i个参数的字符指针 这两个内设形参用于接收命令行参数 例 用函数指针变量调用函数,比较两个数大小 void main() { int max(int , int); int a, b, c; scanf(%d,%d, a, b); c=max(a, b); printf(a=%d,b=%d,max=%d\n, a, b, c); } int max(int x, int y) { int z; if(xy) z=x; else z=y; return(z); } void main( ) { int max( int , int ); int (*p)( ); int a, b, c; p=max; scanf(%d,%d, a, b); c=(*p)(a, b); printf(a=%d,b=%d,max=%d\n, a, b, c); } int max (int x, int y) { int z; if(xy) z=x; else z=y; return(z); } 关键! 比较 c=max(a,b); 定义指针 #include stdio.h 说明: 1)语句p=max,把函数max的入口地址赋给函数指针p,因此,c=(*p)(a,b)中,*p就是调用函数max。 注意: 语句 p=max;是给指针变量赋值,只需给出函数名,而不必给出参数。函数名代表函数的入口地址,不牵涉到实参和形参的结合问题。 用函数指针调用函数时,应指定实参。 2)(*p)( )表示定义了一个指向函数的指针变量,用来存放函数的入口地址,它可以先后指向不同的函数。 3)指向函数的指针变量p,象p++、p--、p+n等运算是无意义的。 10.5.2 用指向函数的指针作函数参数 函数指针变量常用的用途之一是把指针作为参数传递到其他函数。指向函数的指针也可以作为参数,以实现函数地址的传递,这样就能够在被调用的函数中使用实参函数。 实参函数名 f1 f2 ↓ ↓ void sub( int (*x1)(int),int (*x2)(int, int) ) { int a,b,i,j; a=(*x1)(i); /*调用f1函数*/ b=(*x2)(i,j); /*调用f2函数*/ … } 原理简述如下: 有一个函数(假设函数名为sub),它有两个形参(x1和x2),定义x1和x2为指向函数的指针变量。在调用函数sub时,实参用两个函数名f1和f2给形参传递函数地址。这样在函数sub中就可以调用f1和f2函数了。 如: int f1(int i); int f2(int i, in
您可能关注的文档
最近下载
- 雨课堂 科研伦理与学术规范-期末考试答案及各章节答案.docx VIP
- 天龙八部全支线.pdf VIP
- 人行道砖块拆除施工方案.docx VIP
- WDT-IIIC电力系统综合自动化试验台使用说明书(王修改).docx VIP
- 安徽省江南十校2024年“江南十校”高一12月份分科诊断联考生物学试卷含答案.pdf VIP
- 护理肺部听诊技术规范.pptx
- AsprovaAPS 说明资料手册.pdf VIP
- (新)预防和处理校园欺凌事件工作制度与措施(2篇).docx VIP
- 2025年中央一号文件政策解读PPT课件.pptx VIP
- 2026人教版语文二年级上册期末总复习综合试卷(3套含答案解析).docx
原创力文档


文档评论(0)