- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
C课件5.函数
第六章 函 数 ——结构化程序设计基础 结构化程序设计概述 6.1 函数的定义和调用 ⒉函数的定义 ⒊函数的调用 ⑵调用过程 关于返回值的几点说明: 举例:通过函数求 xn 。 6.2 变量的存储类型及作用域 ⒈auto存储类型 ⒊static(静态)存储类型 ⒋外部变量(extern存储类型) 关于外部变量的几点说明: 关于外部变量的几点说明: 外部变量应用举例:用外部变量交换两个变量的值。 外部变量的副作用 6.9 编译预处理 说明: ⑵带参数的宏定义 ⒉文件包含 文件包含举例:求半径为r的园面积、园周长。 ⒊条件编译 举例:通过条件编译选择求最大值或最小值 6.3 函数间的数据传递 数据传递方式 ⒈使用参数传递数据 6.7 递归函数 递归举例:求n!。 切到指针一章再回来 ⑵传地址方式 ⒉外部变量传递参数 6.4 数组与函数参数 举例:通过函数求数组元素的平均值。 6.5 返回指针的函数 举例:在字符串中查找特定的字符。 6.6 指向函数的指针 举例:求a、b的最大值。 举例:通过参数传递,求a、b之和、之差。 6.8 命令行参数 举例:回显命令行参数。 形参定义为指针,实参为变量的地址,被调函数通过地址可以 修改地址对应的变量。 #include stdio.h void swap ( int * , int * ); void main (void ) { int a , b ; scanf ( “%d , %d ” , a , b ) ; if (ab) swap ( a , b ) ; printf ( “\n %d , %d \n ” , a,b ) ; } void swap ( int *x , int *y ) { int t ; t=*x ; *x=*y ; *y=t ; } 用函数实现两个变量a、b值的交换 4 6 a b 2000H 2400H x y 2400H 2000H 参数变量是否可以实现交换? 定义外部变量被调用函数和被调函数共享,任何函数对外部变 量的修改都会影响到其他函数所见的外部变量的值。 #include stdio.h int c ; void main ( void) { int a ,b ; scanf ( “ %d ,%d ” , a ,b ) ; splus (a , b ) ; printf ( “a*b =%d \n ” ,c ) ; } void splus (int x , int y ) { c=x*y ; } 定义外部变量 c 6 说明:应尽量少用外部变量,应使函数内部的内聚性强,函数 之间的偶合性弱。 问题:引用数组时只能引用数组元素。如果用参数传递数组元 素,则函数需要参数的量太多。为了解决此问题,可以通过指针传 递数组的地址。 数组作为函数参数定义有三种方式: ⒈形参为指针; int ave( int *p) ⒉形参为无下标数组; int ave(int a[ ]) ⒊形参为有下标数组。 int ave(int a[10]) #include stdio.h float mean( int * int) ; void main (void) { int i , array[10]={1,2,3,4,5,6,7,8,910} ; float av ; av=mean(array,10) ; printf( “av=%f \n %d ” ,av ,array [0] ) ; } float mean( int *data ,int num ) { int i ; float avg=0 ; for (i=0 ; inum ; i++) avg+= *data++; avg/=num ; *(data-10)=-1; return (avg ) ; } ⒈指针法; 指针法。 ⒉形参为无下标数组; 无下标数组。 int data[ ] data[0]=-1; data[ i ]; int data[10] 形参为有下标数组。 ⒊形参为有下标数组。 说明: ⑴三种方法的实质都是传递地址, 可以混用。 ⑵形参的任何改变都影响实参。 ⑶函数中对数组的操作,下标不要 超过数组的下标范围。 chp6ex2 概念:函数可以返回一个值,也可以返回一个地址(指针), 如果函数返回指针,称为返回指针的函数。 定义: type *函数名(形参表) {
您可能关注的文档
- CC2530基础例程实验手册.pdf
- 非贵金属氧还原催化.pdf
- Linux内核--网络栈实现分析(一)--网络栈初始化.pdf
- 去范畴化对英式英语和美式英语影响程度的对比研究——以“given”为例(英文).pdf
- stm32的ADS1110驱动程序(模拟I2C).pdf
- 野火2ADC实验.pdf
- 外研社高中英语必修1 module1 Listening and vocabulary, everyday English and function.ppt
- 期权定价模型中的波动率分析_陈信华.pdf
- 语料库中语料的标注_崔刚.pdf
- 2015-2016学年 必修4 Unit 3 Period 2 Vocabulary.ppt
文档评论(0)