网站大量收购闲置独家精品文档,联系QQ:2885784924

C语言程序设计 第8章.ppt

  1. 1、本文档共58页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
a[0][0] a[0][1] a[0][2] a[0][3] a[1][0] a[1][1] a[1][2] a[1][3] a[2][0] a[2][1] p[0] p[1] p[2] a[2][2] a[2][3] 小测验: 此时如果有语句printf(“%d,%d”,*p[0],*(p[0]+1)); 那么输出的是哪些数组元素的值? 8.2.3指针与字符串 【例8-7】通过指针引用字符串。 【程序代码】 #include stdio.h void main( ) { char str[ ]=BeiJing,*p; p=str; /*指针p指针字符串首部*/ printf(%s\n,p); /*从字符串首字符开始输出,遇‘\0’结束*/ p+=3; /*移动指针p*/ printf(%s\n,p); /*从指针p所指字符开始输出,遇‘\0’结束*/ } 程序运行结果为: 【例8-8】利用指针实现两个字符串的连接。 【编程思路】 (1)指针p指向第一个串的末尾(最后一个字符后面),指针q指向第二个串的首部。 (2)将第二个串中字符依次放入第一个串后。 【程序代码】 #include stdio.h #include string.h void main( ) { char str1[20],str2[10],*p,*q; printf(请输入两个字符串:); gets(str1); gets(str2); p=str1+strlen(str1); /*p指向第一个串的末尾*/ q=str2; /*q指向第二个串的首部*/ while(*q!=\0) /*如果第二个串未结束,继续执行*/ { *p=*q; p++; /*指针p向后移动*/ q++; /*指针q 向后移动*/ } *p=\0; /*串末尾加上结束标志*/ printf(连接后新串为:); puts(str1); } 程序运行结果为: 8.3 指针与函数 8.3.1 变量地址作函数参数 调用函数时,通过函数的参数不仅能够传递普通的值,而且还能传递地址值。 当实参为一个地址时,形参必须是一个基类型与它相同的指针变量。 【例8-9】求两数之和。 【程序代码】 #include stdio.h int add(int *x,int *y) /*形参为指针变量*/ { int z; z=*x+*y; return z; } void main( ) { int a,b,sum; printf(请输入2个整数:); scanf(%d%d,a,b); sum=add(a,b); /*实参为变量的地址(即指针)*/ printf(%d+%d=%d\n,a,b,sum); } b 10 30 x y a 【例8-10】调用swap函数,交换主函数中变量x和y中的数据。 【程序代码】 #include stdio.h void swap(int *a,int *b) { int t; t=*a; *a=*b; *b=t; } void main( ) { int x,y; printf(请输入2个整数:); scanf(%d%d,x,y); printf((1)x=%d,y=%d\n,x,y); swap(x,y); printf((2)x=%d,y=%d\n,x,y); } 小测验 如果将函数改为如下形式,程序还能实现变量x和y互换吗? void swap(int *a,int *b) { int *t; t=a; a=b; b=t; } 程序运行结果: 8.3.2 数组名作函数参数 数组名可以用作函数的形参和实参,如下面程序片段: void main( ) { int a[5];  .... f(a,5); .... } void f(int b[5],int n) {  .... } 用数组名作实参时,是把数组的首地址传送给形参数组,这样形参数组与实参数组共占同一段内存区域。 引用形参数组元素的值也就是引用实参数组元素的值,因此形参数组会影响实参数组。 【例8-11】数组名作函数参数。 【程序代码】 #include stdio.h void add(int a[ ],int b[ ]) { int i; for(i=0;i3;i++) a[i]=a[i]+b[i]; } void main( ) { int x[3]={1,2,3}; int y[3]={4,

文档评论(0)

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

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

1亿VIP精品文档

相关文档