高级语言程序设计C--函数解析.ppt

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

第八章 函数(function) 内容提要 函数的概念与定义 函数的参数与函数的返回值 函数的调用 数组与函数 变量的类型 全局函数和静态函数 参数类型与数量可变的函数 8.6 全局函数和静态函数 全局函数 全局函数类似于全局变量。凡程序中定义的函数,如果未做特别说明,一律都是全局的(也称外部函数)。也就是说,函数从本质上是全局的,一个程序不管有多少个程序文件所组成,在某个程序文件中可以调用同一程序的另外一个程序文件中定义的函数,只要对被调函数的原型进行说明即可(可以缺省extern关键字)。关于函数原型说明的用法,我们已在前面作过描述。 8.6 全局函数和静态函数 静态函数 静态函数,类似于静态全局变量。因为函数多数为外部型的,必然产生不同源文件中同名函数的冲突。若将某一重要函数定义为静态型(static),则只能被该函数所在文件的其它函数调用,而不能被其它源文件的函数调用。 静态函数定义的一般形式为: static 类型标识符 函数名(形参及其类型) { 函数体 } 注意:这种函数就只能在定义它的程序文件中调用。 8.6 全局函数和静态函数 第八章 函数(function) 内容提要 函数的概念与定义 函数的参数与函数的返回值 函数的调用 数组与函数 变量的类型 全局函数和静态函数 参数类型与数量可变的函数 8.7 参数类型与数量可变的函数 在C语言中,可以定义参数的类型和数量都可变的函数。最典型的例子是函数printf(),它的参数类型和个数就是可以变化的,相信读者已经使用和体验过了。为了把参数类型及数目都未定的事实告诉编译程序,我们用三个圆点(…)结束函数形参的声明。例如,以下声明表示:函数func()至少接受两个整型变元,随后,可能还有0到多个其它变元。 fun(int a,int b,...); 函数原型中也可以使用这种形式。 8.7 参数类型与数量可变的函数 8.7 参数类型与数量可变的函数 注意:变元数可变的任何函数,至少必须有一个真正的变元。例如,以下用法是错误的。 func(...); 关于参数类型与数量可变的函数的具体使用方法,与指针有关,而且使用很少,我们在这里不再详细叙述,如有需要,可以参见头文件stdarg.h中的函数描述: void va_arg(va_list argptr, type); type va_start(va_list argptr,last_parm); void va_end(va_list argptr); 8.7 参数类型与数量可变的函数 例8-16 #includestdio.h void bubble_sort(int data[],int len); /* 数组作为函数的形参 */ void main(void) { int a[]={1,5,4,3,6,2,7,8,10,9}, i ; int length=sizeof(a)/sizeof(int); printf(排序前的各元素:\n); for( i=0; ilength; i++) printf(%d,,a[i]); printf(\n\n); printf(正在冒泡排序......\n); bubble_sort(a,length); /* 数组作为函数的实参 */ printf(排序后的各元素:\n); for(i=0;ilength;i++) printf(%d,,a[i]); } 8.4 函数与数组 void bubble_sort(int data[],int len) { int pass,temp,flag,i; for( pass=1;passlen;pass++){ flag=0; for(i=0; ilen-pass; i++) if(data[i]data[i+1]){ flag+=1; temp=data[i];data[i]=data[i+1];data[i+1]=temp; } if(flag==0) break; } } 8.4 函数与数组 程序运行情况如下: 排序前的各元素: 1,5,4,3,6,2,7,8,10,9, 正在冒泡排序...... 排序后的各元素: 1,2,3,4,5,6,7,8,9,10, 8.4 函数与数组 说明: (1)我们把前面数组中讲过的冒泡排序,改用函数bubble_sort(int data[],int len)来实现,函数的形参为一个数组和一个表示数组长度(或表示要排序的元素个数)的整型

文档评论(0)

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

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

1亿VIP精品文档

相关文档