C语言-Lesson8.pptVIP

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
C语言-Lesson8

10.3.3用数组名作为函数参数 用数组名作为函数参数,由于实参数组名代表该数组首地址。而形参是用来接收从实参传递过来的数组首地址的。所以当用数组名作参数时,如果形参数组中各元素的值发生变化,实参数组元素的值随之变化。因为实参数组和形参数组都指向了数组在内存中的同一块存储位置. 说明: C语言调用函数时虚实结合的方法都是采用“值传递”方式,当用变量名作为函数参数时传递的是变量的值,当用数组名作为函数参数时,由于数组名代表的是数组起始地址,因此传递的值是数组首地址,所以要求形参为指针变量。 例10.7将数组a中n个整数按相反顺序存放 例10.8从10个数中找出其中最大值和最小值。 例10.9 用选择法对10个整数排序。 选择排序法 选择排序法首先从数组中,选择最小的1个元素,将其和位于第1个位置的元素交换;接着,从剩下的n-1个元素中,选择次小的1个元素,将其和第2个位置的元素交换;这样不断重复,直到最后两个元素。 例如,对以下5个数据的排序过程为: 初始数据 第一次排序结果 第二次排序 Step1 Exercise 10.4字符串与指针 在C程序中,可以用两种方法访问一个字符串。 (1) 用字符数组存放一个字符串,然后输出该字符串。 (2) 用字符指针指向一个字符串。可以不定义字符数组,而定义一个字符指针。用字符指针指向字符串中的字符。 例10.16 定义字符指针 说明: 在程序中定义了一个字符指针变量string。给定一个字符串常量“I love China!” ,C语言对字符串常量是按字符数组处理的,在内存开辟了一个字符数组用来存放字符串常量。程序在定义字符指针变量string时把字符串首地址赋给string。 说明: %s示输出一个字符串,给出字符指针变量名string,则系统先输出它所指向的一个字符数据,然后自动使string加1,使之指向下一个字符,然后再输出一个字符……如此直到遇到字符串结束标志‘\0’为止。 通过字符数组名或字符指针变量可以输出一个字符串。而对一个数值型数组,是不能用数组名输出它的全部元素的。 例10.17 对字符串中字符的存取,可以用下标方法,也可以用指针方法 例10.18 可以设指针变量,用它的值的改变来指向字符串中的不同的字 说明: 10.4.2字符指针作函数参数 将一个字符串从一个函数传递到另一个函数,可以用地址传递的办法,即用字符数组名作参数或用指向字符串的指针变量作参数。这样在被调用的函数中可以改变字符串的内容。 例10.19 用函数调用实现字符串的复制。 (2) 形参用字符指针变量。 10-19B.C Step2 10.5指向函数的指针 10.5.1用函数指针变量调用函数 可以用指针变量指向整型变量、字符串、数组,也可以指向一个函数。一个函数在编译时被分配给一个入口地址。这个入口地址就称为函数的指针。可以用一个指针变量指向函数,然后通过该指针变量调用此函数。 指向函数的指针变量的定义形式为 数据类型 (*指针变量名)(); 注意:“数据类型”是指函数返回值的类型。 例10.22 求a和b中的大者。 例10.22 求a和b中的大者。 说明: 函数的调用可以通过函数名调用,也可以通过函数指针调用 (*p)()表示定义一个指向函数的指针变量,它不是固定指向哪一个函数的,而只是表示定义了这样一个类型的变量,它是专门用来存放函数的入口地址的。 在给函数指针变量赋值时,只需给出函数名而不必给出参数,如:p=max; 用函数指针变量调用函数时,只需将(*p)代替函数名即可(p为指针变量名),在(*p)之后的括弧中根据需要写上实参。 对指向函数的指针变量,像p+n、p++、p--等运算是无意义的。 10.5.2 用指向函数的指针作函数参数 指向函数的指针也可以作为参数,以实现函数地址的传递,也就是将函数名传给形参。 原理: 假设有一个函数,名为Sub,它有两个形参(x1和x2),定义x1和x2为指向函数的指针变量。在调用函数Sub时,实参用两个函数名f1和f2给形参传递函数地址。这样在函数SuB中就可以调用f1和f2函数了。 指向函数的指针作函数参数 在Sub被调用时,把实参函数f1和f2的入口地址传给形参指针变量x1和x2,使x1和x2指向函数f1和f2。在函数Sub中,用*x1和*x2就可以调用函数f1和f2。 (*x1)(i)就相当于f1(i),(*x2)(i,j)就相当于f2(i,j) 例10.23 设一个函数process,在调用它的时候,每次实现不同的功能。输入a和B两个数,第一次调用process时找出a和b中大者,第二次找出其中小者,第三次求a与b之和。 10.6返回指针值的函数 一个函数可以带回一个整型值、字符值、

文档评论(0)

jgx3536 + 关注
实名认证
文档贡献者

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

版权声明书
用户编号:6111134150000003

1亿VIP精品文档

相关文档