C语言-第9章 指针.ppt

  1. 1、本文档共71页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
C语言-第9章 指针

*/72 9.4.1 指 针数组 指针数组的定义: 类型标识符 *数组名[长度]; 例如: int *pc[5]; 定义了一个长度为5的指针数组pc,它的每个数组元素都可指向一个整型变量(或存放一个整形变量的指针)。 注意:不要写成 int(*pc)[5] 对于变量定义int p[5],*a[5], 表达式( )是正确的 A. p=a B. p[0]=a C. *(a+1)=p D. a[0]=2 思考 */72 例 题 【例9.23】 分析下列程序的输出结果。 #include “stdio.h” main( ) { char *name[]={ “”,“Monday”,“Tuesday”,“Wendesday”, "Thursday“,"Friday“,"Saturday“,"Sunday"}; int week; while(1) { printf("Enter week No.:"); scanf("%d",week); if ( week1 || week7 ) break; printf("week No.%d?%s\n“,week,name[week]); } } */72 main函数的形参 主函数的原形如下: main(int argc,char *argv[]) { …… } 其中,形参argc是整形变量,形参argv[]是一个字符型指针数组。 main 函数的参数通过操作系统的命令行获得 9.4.2 */72 当操作系统调用main()函数时,将命令行中的命令名(可执行文件名)和各个参数都看成为一个个字符串,将字符串的个数传给argc,将各个字符串的首地址传给argv字符数组的每个元素,即: argv[0]指向“命令名”字符串 argv[1]指向“参数1”字符串 argv[2]指向“参数2”字符串 … 9.4.2 main函数的形参 程序的执行步骤: 1.编译、链接后形成一个可执行的文件 2.在命令行提示符下输入如下命令行: 可执行文件名 参数1 参数2 */72 例如一个C语言的程序,该程序的可执行文件名为 file1.exe,则命令行格式为: file1.exe hello worldEnter 程序运行时: argc的值为3; argv[0]、argv[1]、argv[2]分别指向字符串“file1.exe”、“hello”、“world”。 9.4.2 main函数的形参 */72 【例9.25】编写程序输出命令行中命令名和各参数。 #include stdio.h main( int argc,char *argv[]) { int k; for(k=0;kargc;k++) printf(arg%d:%s\n,k,argv[k]); } 假设该程序的可执行文件名为test.exe,输入: test.exe Beijing Shanghai Qingdao GuangzhouEnter 则运行结果是: arg0:test.exe arg1:Beijing arg2:Shanghai arg3:Qingdao arg4:Guangzhou 例 题 */72 二级指针变量 定义二级指针变量的一般形式为: 类型标识符 **指针变量名; 例如:实现下图的定义语句为: int a,*pa=a,**pp=pa; a(整型变量) 二级指针变量pp pa pa(指针变量) a 10 图9.14 二级指针示意图 a, *pa, **pp a, pa, *pp pa, pp 9.4.3 */72 以下程序的输出结果是( )。 fut (int **s, int p[2][3]) { **s=p[1][1]; } main( ) { int a[2][3]={1,3,5,7,9,11},b,*p=b; fut(p,a); printf(%d\n,*p); } A.1 B.7 C.9 D.11 C int (*p)[3] 练 习 */72 #include stdio.h main( ) { char *st[ ]={ONE,TWO,FOUR,K}; printf(%s,%c\n,*(st+2),**st+1); } 输出结果是 ------------ “ONE” “TWO” “FOUR” “K” st st+2 *(st+2) *st **st 练 习 * 对于5所在单元的访问就有两种方式了(只要找

文档评论(0)

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

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

1亿VIP精品文档

相关文档