《C语言程序设计》第8章指针的应用.ppt

  1. 1、本文档共79页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
该例中,p是指向指针的指针变量,在5次循环中,p分别取得了name[0],name[1],name[2],name[3],name[4]的地址值,因此,*p的值分别是name[0],name[1],name[2],name[3],name[4]的值,即各个字符串的起始地址,通过这些地址即可输出相应的字符串。如图8-13所示。 该例中,灰色部分的代码也可以改写为下面更简洁的形式: for(p=name,i=0;i5;i++,p++) printf(%s\n,*p); 8.3.3 带参数的main函数 此前,我们用到的main()函数都是不带参数的,因此main()函数的第一行是:main()。其实main()函数也可以有参数。C语言规定,main()函数的参数只能有两个,习惯上这两个参数写为argc和argv。带参数的main()函数首部的一般形式如下: main(int argc,char *argv[]) 其中,第一个形参argc必须是整型变量,第二个形参argv必须是指向字符串的指针数组。 由于main()函数是主函数,不能被其他函数调用,因此不可能从其他函数得到所需的参数值。main()函数的参数值是从操作系统命令行上获得的。一个C程序,经过编译、连接后得到的是可执行文件,当运行这个可执行文件时,在命令行中键入文件名,再输入实际参数,就可以把实参传送给main()函数的形参。其使用的一般形式为: C:\ 命令名 参数1 参数2……参数n 其中,“命令名”为可执行文件名,命令名和各参数间用空格分隔。例如,若有一个目标文件名为cfile.exe,若想将两个字符串“China”和“Beijing”作为main()函数实参,可以写成以下形式: C:\ cfile China Beijing main()函数中第一个形参argc表示命令行中参数的个数(包括命令名),argc的值是在输入命令行时由系统按实际参数的个数自动赋予的。上例中共有3个参数,因此,argc的值为3。第二个形参argv是一个指向字符串的指针数组,其各元素值为命令行中各字符串的首地址。argv[0]指向字符串“cfile”,argv[1]指向字符串“China”,argv[2]指向字符串“Beijing”,如图8-14所示。 下面举例说明main()函数对参数argc和argv的引用方法。 【例8.14】编写程序,实现执行程序时回显命令行中的各参数。源程序文件名为cfile。 #include stdio.h main(int argc,char *argv[]) { while(argc1) { ++argv; printf(%s\n,*argv); --argc; } } 程序经过编译、连接后生成可执行文件cfile.exe,运行时在操作系统状态下键入命令行: cfile China Beijing ? 输出结果为: China Beijing 如果参数本身有空格,须用双引号括起来。例如: 输入:cfile China Beij ing ? 输出结果为: China Bei jing 8.3.4 返回指针值的函数 一个函数可以返回一个整型值、字符值、实型值等,也可以返回一个指针型数据,即地址。这种返回指针值的函数也称为指针型函数。 定义返回指针值函数的一般形式为: 类型说明符 *函数名(形参表) { … //函数体 } 其中,函数名之前的“*”号,表明这是一个指针型函数,即返回值是一个指针;“类型说明符”表示返回的指针值所指向的数据类型。例如: int *fun(int x,int y) { … //函数体 } 表示fun()是一个返回指针值的指针型函数,它返回的指针指向一个整型变量。 【例8.15】在一个字符串中查找一个指定的字符,并输出从该字符开始的子字符串。 #include string.h #include stdio.h char *match(char *str,char c) //定义返回指针值的函数 { char *t; while(*str!=c *str!=\0) str++; if(*str==c) t=str; else t=0; return(t); } main( ) { char s[50],*p,ch; gets(s); ch

您可能关注的文档

文档评论(0)

autohhh + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档