第五讲C语函数.doc

  1. 1、本文档共60页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第5讲 函数 5.1函数的概念 C程序由一个main和任意个函数组成。 例1 在主函数中调用其他函数。 #includestdio.h void printstar(void) { puts(**********************\n); } void print_message(void) { puts( Welcome to C!\n); } main() { printstar(); print_message(); printstar(); return 0; } 程序运行后输出: ********************** Welcome to C! ********************** 3)函数不可嵌套定义,具有全局性、平行性, 4)函数分为有参与无参函数 5)程序从main开始执行,最后又回到main函数结束。 5.1.5 1. 定义无参数的一般形式 类型标识符 函数名([void]) { 声明部分 语句 } 调用方式 函数名( ) ; 若有返回值可出现在表达式中,无返值可单独出现 2. 定义有参数的一般形式 函数的定义通常包含以下内容: 函数返回值类型 函数名(形参表说明)//函数首部,函数头 { 声明语句 //函数体   执行语句 } 说明: (1)函数的类型,是指函数返回值的类型。当不指明函数类型时,系统默认的是int型。 (2)函数名本身也有值,它代表了该函数的入口地址,使用指针调用该函数时,将用到此功能。 (3)形参全称为形式参数。形参表是用逗号分隔的一组变量说明(即定义),包括形参的类型和形参标识符,其作用是指出每一个形参的类型和形参的名称,当调用函数时,接受来自主调函数的数据,确定各参数的值。如:   int func (int x, int y )   { …… }。 (4)用{ }括起来的部分是函数的主体,称为函数体。我们可以得到一个C语言中最简单的函数: void dumy ( ){ } 5.2 函数参数和函数的值 C语言中采用参数、返回值和全局变量三种方式进行数据传递。 ◆当调用函数时,通过函数的参数,主调函数为形参提供数据; ◆调用结束时,被调函数通过返回语句将函数的运行结果(称为返回值)带回主调函数中; ◆函数之间还可以通过使用全局变量,在一个函数内使用其他函数中的某些变量的结果。 1. 形式参数和实际参数 形式参数(形参)——是函数定义时由用户定义的形式上的变量。实际参数(实参)——是函数调用时,主调函数为被调函数提供的原始数据。 按值传递参数——数值传递 若实参和形参均为普通变量,则实参向形参传送数据的方式是按值传递。等价于: 数据类型 形参变量名=实参变量名; ◇形式参数是函数的局部变量,仅在函数内部才有意义,不能用它来传递函数的结果。 例:调用函数的数据传递。 #includestdio.h int max ( int x, int y ) //x和y为形参,接受来自主调函数的原始数据 { int z; z=xy?x:y; return(z); //将函数的结果返回主调函数 } main() { int a,b, c; puts(please enter two integer numbers); scanf(%d %d,a,b); c=max(a,b);//主函数内调用功能函数max,实参为a和b printf(max=%d\n,c); return 0; } 说明:实参与形参必须类型相同,个数相等,一一对应。当调用函数时,实参的值传给形参,在被调函数内部,形参的变化不会影响实参的值。 当实参之间有联系时,实参的求值顺序在不同的编译系统下是不同的,VC是从右向左。 例2: #includestdio.h int add(int x,int y); main() { int x=2; printf(%d\n,add(x,++x)); return 0; } int add(int x,int y) { return (x+y); } 运行结果: 6 例3:调用按值传递的函数不能实现两个实参变量值的交换。 若在主函数中变量a=5,b=10,编写一个函数交换主函数中两个变量的值,使变量a=10,b=5。 #includestdio.h void swapf(int x,int y); main() { int a, b; a=5; b=10; //说明两个变量并赋初值 printf(before swapf a=%d b=%d\n,a,b); swapf(a, b); //用变量a和b作为实际参数调用函数 printf(after

文档评论(0)

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

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

1亿VIP精品文档

相关文档