C程序设计教程和实验(清华大学出版社 吉顺如)第8章_指针-2.pptx

C程序设计教程和实验(清华大学出版社 吉顺如)第8章_指针-2.pptx

  1. 1、本文档共55页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
#include stdio.h void cpystr(char *pss, char *pds) { while(*pds++=*pss++) ; //循环体为空语句 } void main() { char *pa=CHINA, b[10], *pb; pb=b; cpystr(pa, pb); printf(string a=%s\nstring b=%s\n, pa, pb); };【例8-21】输入两个整数,按从大到小顺序输出这两个数。要求用函数处理,而且用指针类型的数据作函数参数。;#include stdio.h void swap(int *p1, int *p2) { int temp; temp=*p1; *p1=*p2; *p2=temp; } void main() { int a, b; int *pointer1, *pointer2; pointer1=a; pointer2=b; scanf(%d,%d, a, b); if(ab) swap(pointer1, pointer2); printf(%d,%d\n,a,b); };程序说明: main()函数中,指针变量pointer1和pointer2分别指向a、b的地址。 调用swap()函数时,将pointer1和pointer2(a和b的地址)传递给形参p1和p2;程序说明: 执行swap()函数,使*p1和*p2的值互换,即使a和b的值互换(注意p1和p2的指向未改变) swap()函数调用结束后,函数中的局部变量p1和p2不复存在,内存空间被释放;思考:若swap函数如下,结果是什么?;void swap(int *p1, int *p2) { int *temp; *temp = *p1; *p1 = *p2; *p2 = *temp; };void swap(int x, int y) { int temp; temp = x; x = y; y = temp; };#include stdio.h void main() { int a, b, c; scanf(%d,%d,%d, a, b, c); exchange(a, b, c); printf(%d,%d,%d\n, a, b, c); };8.4.2返回指针值的函数;【例8-23】输入一个字符串,包含n个字符。编写一个函数submax(),从输入字符串中ASCII码值最大的那个字符开始,将其之后的字符全部输出。;#includestdio.h char *submax(char *s) { char *p; p=s+1; while(*p) { if(*p*s) s=p; p++; } return(s); };【例8-24】假设整型数组a在main()函数中定义,试编写test()函数,在其中定义整型数组c,比较整型数组a和c的对应元素值,如果对应元素值相等,则将该元素值赋值给静态数组d的相应单元,最后test()函数的返回值带回静态数组d的起始地址,在main()函数中将数组d中的所有数据以两种方式全部输出。;#include stdio.h int *test(int b[]) { int c[5]={1,2,3,4,5}, i; static int d[5]; //static不能漏掉 for(i=0;i5;i++) if(*(b+i)==c[i]) d[i]=c[i]; return(d); //返回整型静态数组d的起始地址 } void main( ) { int a[5]={1,7,3,9,5}; int *p; p=test(a); printf(%d,%d,%d,%d,%d\n, *p, *(p+1), *(p+2), *(p+3), *(p+4)); printf(%d,%d,%d,%d,%d\n, p[0], p[1], p[2], p[3], p[4]); };C语言中,一个函数总是占用一段连续的内存区 函数名就是该函数所占内存区的首地址。 可以把函数的首地址(或称入口地址)赋给一个指针变量,使该指针变量指向该函数。 通过指针变量可找到并调用该函数 指向函数的指针变量称为“函数指针变量”;函数指针变量定义的一般形式: 类型说明符 (*指针

文档评论(0)

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

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

1亿VIP精品文档

相关文档