- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 例8.28 使用指向指针的指针。 main( ) { char *name[]={“Follow me”, “Basic”, \ “Great Wall”, “Fortran”, “Computer”}; char **p; int i; for(i=0;i5;i++) { p=name+i; printf(“%s\n”, *p); } } 例8.29 main( ) { int a[5]={1,3,5,7,9}; int *num[5]={a[0],a[1],a[2],a[3],a[4]}; int **p, i; p= num; for(i=0;i5;i++) {printf(“%d\t”,**p); p++;} } 运行结果: 1 3 5 7 9 1 3 5 7 9 a num p 8.7.3 指针数组作main函数的形参 带参数的main原型: main( int argc, char *argv[ ] ) { …… } 说明: 第1个参数是指命令行中参数的个数,含文件名本身。 第2个参数是一个指向字符串的指针数组。 main函数是由系统调用的。调用命令行为: 命令名 参数1 参数2 …… 参数n 例:编写一程序echo.c,实现将命令行上除程序名之外的所有给出的其他参数都回显到显示器上。 main(int argc, int *argv[ ]) { while(argc1) { ++argv; printf(“%s”, *argv); -- argc; } } 若将该程序编译、连接、装配成echo.exe,则在命令行上输入: echo hello, world!enter 则通过虚实结合后得: argc=3;argv如下: 结果为: hello, world! argv[0] argv[1] argv[2] agrv echo hello, world! 8.8 有关指针的小结 1.有关指针的数据类型的小结 定 义 含 义 int p int *p int p[n] int *p[n] int (*p)[n] int f( ) int *f( ) int (*f)( ) int **p 定义整型变量p p为指向整型数据的指针变量 定义一个数组p,它有n个基类型为整型 的元素 定义指针数组p,它有n个指向整型数据的指针元素 p为指向含有n个元素的一维数组的指针变量 f为带回整型函数值的函数 f为带回一个指针的函数,该指针指向整型数据 f为指向函数的指针,该函数返回一个整型值 p是一指针变量,它指向一指向整型值的指针变量 2. 指针运算小结 ⑴指针变量加(减)一个整数 例:p++、p--、p+i、p-=i等 ⑵指针变量赋值 p=a; p1=p2; ⑶指针变量可以有空值,即该指针变量不指向任何变量。 如 : p=NULL; ⑷两个指向同一数组元素的指针变量可以相减 ⑸两个指向同一数组的指针变量可作关系运算 3. void指针类型(略) ANSI新标准增加了一种“void”指针类型,即可定义一个指针变量,但不指定它是指向哪一种类型数据的。 它可指向一个抽象的类型的数据,在将它的值赋给另一指针变量时要进行强制类型转换使之适合于被赋值的变量的类型。 如:char *p1; void *p2;…… p1=(char *)p2; 或 p2=(void *)p1; 也可以将一个函数定义为void *类型, 如:void *fun(char ch1, char ch2) 表示函数fun返回的是一个地址,它指向“空类型”。 2.请完善下列程序,将一整数字符串转换为一个整数. main() { char s[6];int n;gets(s); if(*s=-)n=-chnum(s+1); else n=chnum(s); printf(%d\n,n); } chnum(char *p) { int num=0,k,len,j; len=strlen(p); for(; ;p++) { k=
文档评论(0)