C语言程序设计案例教程第7章函数
C语言程序设计第四版_谭浩强7章

➢函数的功能
return z; }
函数体
函数首部,不是语 句,行尾无分号
精选课件ppt
函数的返回值,类 型与首部定义一致14
函数的定义
关于函数类型的说明
无返回值的函数类型为void; 有返回值的函数,其类型根据返回值 类型决定;省略类型时默认为int(建议 不要省略)
精选课件ppt
15
函数的调用
int main( )
{ int max(int a[ ],int n);
int x[6],i;
for(i=0;i<=5;i++)
scanf("%d",&x[i]);
printf("max=%d",max(x,6));
return 0;
}
实参为数组名
精选课件ppt
int max(int a[ ],int n) { int m,i; m=a[0]; for (i=1;i<n;i++)
float fac; fac=1; for(i=1;i<=n;i++)
fac=fac*i; return fac;
printf("c="); scanf("%d",&c);
}
sum=factorial(a)+factorial(b)+factorial(c);
printf("%d!+%d!+%d!=%.0f",a,b,c,sum);
函数1 函数2 函数3
函数1 函数2
精选课件ppt
34
变量作用域——局部变量和全局变量
c语言程序设计第七章函数笔记总结

c语言程序设计第七章函数笔记总结第七章函数1. 函数的概念与作用在C语言程序设计中,函数是一种封装了一系列语句的代码块,它可以实现特定的功能并且可以被多次调用。
函数的作用在于提高代码的复用性、模块化和可维护性。
通过函数,可以将程序分解成一个个小的模块,使得整体代码结构更加清晰,更易于维护和管理。
2. 函数的定义与声明在C语言中,函数由函数名、参数列表、返回类型、函数体四部分组成。
函数的定义包括了函数的实际操作代码,而函数的声明则告诉编译器函数的存在和函数的类型。
在使用函数之前,通常需要提前声明或者定义函数。
3. 函数的参数传递C语言中,函数的参数传递有值传递和指针传递两种方式。
值传递是将实参的值传递给形参,在函数内部对形参的修改不会影响到实参。
而指针传递则是传递变量的位置区域,可以在函数内部通过指针对实参进行修改。
4. 函数的返回值函数可以有返回值,也可以没有返回值。
在函数有返回值时,需要在函数定义中定义返回类型,并且使用return语句返回具体的数值或者变量。
5. 函数的递归调用函数可以调用自身,这种特性被称为递归调用。
递归函数通常通过递归终止条件来结束递归过程,可以解决一些数学问题或者遍历树的问题。
6. 内联函数内联函数是一种特殊的函数,它会在函数调用时直接将函数的代码嵌入到调用的地方,而不是通过函数调用指令来执行。
内联函数可以提高程序运行的效率,但也会增加代码的大小。
总结与个人观点:本章介绍了C语言中函数的使用和定义,详细讲解了函数的各种特性和用法。
通过学习这一章的内容,我对函数的概念和作用有了更深入的了解,也掌握了如何正确地定义和调用函数。
在实际编程中,函数的使用能够更好地组织和管理代码,提高程序的可读性和可维护性。
个人观点上,我认为函数作为一种重要的编程工具,在程序设计中扮演着至关重要的角色。
合理地使用函数能够将复杂的问题分解成简单的小模块,使得程序结构更加清晰和易于维护。
我也认为要注意函数的递归调用和内联函数的使用,灵活运用不同的函数特性来提高程序的效率和性能。
C语言程序课件ppt-第7章函数

例7-7读程序,写出运行结果
# include <stdio.h> void swap(float x,float y){
float temp; temp=x;x=y;y=temp; } void main(){ float x=8.5,y=3.7; swap(x,y); printf("x=%.2f y=%.2f\n",x,y); }
哪个return都将结束函数的调用返回主调函数.
如: void swap(float x,float y) {float temp; temp=x;x=y;y=temp; return x; return y;}
(3)return语句中的括号可以省略;return后面的值可以是一 个表达式.
7.2.2函数的返回值
§7.1.1 函数概述
C程序的结构图如图所示:
main
a bc d e f g hh i
e
g
1、一个C程序可以分为若干个函数;
2、每个程序有且只能有一个主函数 (main),其他函数都是子函数;
3、子函数可以相互调用,但主函数 不能被调用;
4、一个源程序由一个或多个函数构 成,一个源程序文件是一个编译单 位;
例7-1函数调用示例
#include <stdio.h> void printstar(){
printf("***************\n"); } void print_message(){
printf (" How do you do?\n"); } void main(){
printstar(); print_message(); printstar(); }
C语言程序设计实例教程第七章 函数

完整的程序清单 见书本
• 无参函数定义的一般形式: • 类型说明符 函数名() • { • 类型说明 • 语句 • } • 其中类型说明符和函数名称为函数头。 {} 中的内容称为函数体。 在很多情况下都不要求无参函数有返回值,此时函数类型符可以写为void。 • 例如,一个函数定义如下: • void Hello() • { • printf ("Hello,world \n"); • } • 这里,只把main改为Hello作为函数名,其余不变。Hello 函数是一个 无参函数,当被其它函数调用时,输出Hello world字符串。
7.3.3有关自定义函数的几点说明
• • 1、如果被调函数的返回值是整型或字符型时, 可以不对被调函数作说明, 而直接调用。 2、当被调函数的函数定义出现在主调函数之前时, 在主调函数中也可以不 对被调函数再作说明而直接调用。例7-1中, 函数max的定义放在main 函数 之前,因此可在main函数中省去对 max函数的函数说明int max(int a,int b)。 3、如在所有函数定义之前, 在函数外预先说明了各个函数的类型,则在以 后的各主调函数中,可不再对被调函数作说明。 4、对库函数的调用不需要再作说明, 但必须把该函数的头文件用include命 令包含在源文件前部。在C语言中,在一个函数的函数体内,不能再定义另 一个函数,即不能嵌套定义。但是函数之间允许相互调用,也允许嵌套调用。 5、C程序的执行总是从main函数开始, 完成对其它函数的调用后再返回到 main函数,最后由main函数结束整个程序。
7.2自定义有参函数
编写程序: 在主函数中输入 10 个学生成绩,通过调 用函数实现求平均分后,在主函数中输出 平均分值。
谭浩强C语言_第7章_函数2

函数定义的一般形式
对于C编译系统提供的库函数,是由编译系统事先 定义好的,程序设计者不必自已定义,只需#include 命令把有关的头文件包含到本文件模块中即可。 例 如 , 在 程 序 中 若 用 到 数 学 函 数 ( 如 sqrt,fabs,sin,cos等),就必须在本文件模块的开头写 上: #include <math.h>
说明:
2. 一个源程序文件由一个或多个函数以及其 他有关内容(如命令行、数据定义等)组成。 一个源程序文件是一个编译单位,在程序编译 时是以源程序文件为单位进行编译的,而不是 以函数为单位进行编译的。
说明:
3. C程序的执行是从main函数开始的,如果在 main函数中调用其他函数,在调用后流程返回 到main函数,在main函数中结束整个程序的运 行。
说明:
6. 从函数的形式看,函数分两类:
①无参函数。无参函数一般用来执行指定的一组 操作。在调用无参函数时,主调函数不向被调用 函数传递数据。 ②有参函数。主调函数在调用被调用函数时,通 过参数向被调用函数传递数据。
函数定义的一般形式
例如: C语言规定,在程序中用到的所有函数,必须“先 int max(int x,int y) {int z;/ *函数体中的声明部分*/ 定义,后使用”。定义函数包括以下几个内容: if(x>y) z=x; ⒈指定函数的名字,以便以后按名调用。 else z=y; ⒉指定函数的类型,函数值的类型。 return(z); ⒊指定函数的参数的名字和类型,以便在调用函数时 } 向它们传递数据。对无参函数不需要这项。 ⒋指定函数应当执行什么操作,也就是函数是做什么 的,即函数的功能。这是最重要的。
说明:
4. 所有函数都是平行的,即在定义函数时是 分别进行的,是互相独立的。一个函数并不 从属于另一函数,即函数不能嵌套定义。函 数间可以互相调用,但不能调用main函数。 main函数是系统调用的。
C语言函数课件

Page 1
C语言 程序设计
第7章 函数
第7章 函数
知识点
函数的定义与调用; 函数调用时的数据传递方法; 数组作为函数参数; 函数的嵌套调用和递归调用; 局部变量与全局变量的作用域; 动态存储变量和ห้องสมุดไป่ตู้态存储变量的生存期。
重点:
函数的定义与调用; 函数调用时的数据传递方法。
Page 4
C语言 程序设计
第7章 函数
7.2 函数定义与函数调用
函数定义: g ( x , y )
两个形式参数
x y
2
2
函数定义时函数名后的括号中 的变量叫形式参数,简称形参
函数值
函数调用: g(3,4 ) 32 42 5
两个实际参数
函数调用时函数名后的括号中 的参数叫实际参数,简称实参
Page 10
C语言 程序设计
第7章 函数
二、函数的参数
一、形式参数与实际参数
对无参函数,形参表列与实参表列均为空,但括
号不能省略,如fun( )。
对有参函数,实参与形参应个数相等,顺序对应,
类型一致或赋值相容。
定义函数时形参不占用存储单元,只有在调用函
数期间才给形参分配存储单元,并将实参的值传 递给形参。函数调用结束,形参所占用存储单元 也被释放。
Page 17
C语言 程序设计
第7章 函数
五、函数调用的条件
1、被调函数是库函数或已经存在的自定义函数; 2、若被调函数是库函数,一般需在文件开头将其 头文件#include到本文件; 3、若被调函数是自定义函数,一般应在调用前进 行函数原型声明,声明的格式是: 函数类型 函数名(形参类型表列) ; 或者:函数类型 函数名(形参名及其类型表列) ; 举例:int max(int,int) ; 或:int max(int x,int y) ; 一个例外:若被调函数定义在前、调用在后, 则可不加函数原型声明。 Page 18
C语言程序设计_课件_第七章(适于清华谭浩强版)

注意:
(1) return(表达式); 和return 表达式;都 是正确的。 (2) 带返回值的函数只能返回一个值。 (3) 在函数定义时,允许使用多个return语句, 但是应尽量在末尾使用一个return语句。 (4) return语句中的表达式与函数的返回值类 型不匹配时,以函数定义时的返回类型为准。
问题的提出 函数基础 函数的定义 函数说明 函数调用 参数传递 程序举例 递归调用 变量的存储类别
7.1 问题的提出
例6.20它可以解决的问题有: ①输入若干个学生的姓名、某课程的期中 和期末成绩,并计算每个学生的总评成绩; ②计算总评成绩的分数段情况; ③输出所有学生的姓名、期中、期末和总 评成绩; ④查询某个学生的总评成绩。
函数调用时需要传递数据。调用函数要将 实参的值传送给被调用函数的形参。 若函数定义首部是 double power(double x,int n) /*函数定义 */ 调 用 形 式 是 可 以 是 power(y,m) , 也 可 以 是 power(3.0,5)。 其中,x和n是形式参数,y和m是实际参数,3.0 和可以是一个变量 名,因为变量名也构成一个表达式,形式参数只 能是变量名。当实际参数是变量名时,它与形参 的名称既可以相同,也可以不同,只是要注意, 在函数定义内部应该使用形参的名称。 (2) 实际参数与形式参数的参数个数、数据类型 和顺序都应该一致,如果数据类型不一致,系统 将按照自动转换规则进行转换。
7.3 函数的定义
7.3.1 函数的定义形式 在C语言中函数定义的形式有两种。
第一种:
函数返回值的数据类型说明 函数名称(带有类型说明的参数表)
{
函数内部数据说明; 语句;
}
第二种:
C语言程序设计教程 第七章 课后习题参考答案

for(i=0;i<N;i++)
{
printf("%4d",a[i]);
}
bubble_sort(a,N);
printf("\n");
}
void bubble_sort(int a[],int n)
{
int i,j,tmp;
for(i=0;i<n-1;i++)
{
for(j=0;j<n-i-1;j++)
for(i=0;i<n/2;i++)
{
t=a[i];
a[i]=a[n-1-i];
a[n-1-i]=t;
}
for(i=0;i<n;i++)
{
printf("%-4d",a[i]);
}
}
P1985对称矩阵
#include<stdio.h>
void print(int a[][3],int rows,int cols);
int a[M][N]={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16};
int i,j,m=0,n=0;
for(i=0;i<M;i++)
{
for(j=0;j<N;j++)
{
printf("%4d",a[i][j]);
}
printf("\n");
}
for(i=0;i<M;i++)
m++;
C语言程序设计基础 第7章

模块化程序设计的基本要点是贯彻“自顶向下,逐步细 化”的思想方法,即将一个复杂功能的编程问题,划分成若 干个功能相对简单的子问题。这种划分可以逐层进行,直到 便于编程为止。在C语言中,一个模块的功能由一个函数来 实现。顶层函数是主函数main( )。功能模块与C语言函数的 关系如图7.1所示。
图7.1 模块与函数
第7章 函数——模块化程序设计方法的实现
7.1 模块化程序设计方法与函数 7.2 函数的定义 7.3 函数的调用 7.4 函数调用的条件与函数声明 7.5 函数的嵌套调用和递归调用 7.6 变量的作用域与函数间的数据传递 7.7 用函数实现模块化程序设计 实训任务十三 熟悉函数的功能及其使用方法 实训任务十四 学习模块化程序设计的方法
② 函数功能实现部分,是一个程序段,要依据实现某 种功能的算法进行设计。
③ 函数体最后使用一个“return(返回值);”语句,括 号中的返回值是一个需传带给主调函数的数据对象。如果没 有返回值,可以不要这个语句。VC++ 6.0系统中提倡在 main( )函数体后使用一个“return 0;”语句,表示正常返 回系统,否则会出现警告。如果函数体仅是一对花括号,没 有任何语句,就是空函数。空函数一般是无参函数。
7.2 函 数 的 定 义
怎样定义函数?定义函数要考虑哪些问题?
定义函数要解决两个方面的问题:一是函数间的接口问 题,二是功能实现问题。接口问题包括如何被上层函数调用 ,调用时需传递什么数据,调用返回时需传带什么数据。功 能实现问题就是如何实现模块的过程算法。
函数定义的一般形式为
基类型符 函数名(类型符形式参数 1,类型符形式参数 2,…) {
函数体内数据对象定义或声明部分; 函数功能实现部分; return(返 回值); }
C语言程序设计知识点—第7章 函数

第 7 章:函数
主讲教师:杨剑
1. 本章目标
熟练掌握函数的定义与调用方法 理解函数的定义、声明和调用的区别 理解函数原型、实参、形参和函数的返回值 了解函数的嵌套调用和递归调用的方法 掌握数组做为函数参数的使用方法 理解变量的作用域和存储方法
2. 函数机制的优点
~6~
C 语言程序设计知识点
主讲教师:杨剑
[练习]若各选项中所用变量已正确定义,函数 fun 中通过 return 语句返回一个函数值,
以下选项中错误的程序是( )
A.main()
{……x=fun(2,10); ……}
float fun(int a,int b){……}
B.float fun(int a,int b){……}
int data; scanf(“%d”,&data); printf(“%d”,add(data)); return 0;
~5~
C 语言程序设计知识点
主讲教师:杨剑
} int add(____②_____) {
int i,sum=0; for(i=1;i<=n;i++)
sum=sum+i; _______③__________ } 答案: ①int add(int); ②int n ③retrun sum;
{
printf(“%d\n”,F(3+5));
}
[练习]程序运行后的输出结果是( )
A.192 B.29
C.25
D.编译出错
答案:D
在 C 语言中,函数返回值的类型最终取决于( )
A.函数定义时在函数首部所说明函数类型
B.return 语句中表达式值的类型 C.调用函数时主调函数所传递的实参类型
C语言程序设计第七章 利用数组处理数据

一维数组的存储: 计算机中用连续的内存单元存放各个元素。 如:int a[5];其内存存储为:
保存数组所需内存量与数组元素的基本类型和数组大小有关。 总字节数=sizeof(基本类型)*数组元素个数 如上例:= sizeof(int)*5 第i个元素的地址=第1个元素的地址+i*sizeof(基本类型)
类型说明符 数组名[常量表达式]={值,值……值}; 其中在{ }中的各数据值即为各元素的初值,各值之间用逗号 间隔。 例如:
int a[10]={ 0,1,2,3,4,5,6,7,8,9 }; 相当于a[0]=0;a[1]=1...a[9]=9;
整理课件
C语言对数组的初始化赋值还有以下几点规定:
有 5个元素。但是其下标从0开始计算。因此5个元素分别为
a[0],a[1],a[2],a[3],a[4]。
不能在方括号中用变量来表示元素的个数, 但是可以是符
号常数或常量表达式。
例如:
#define FD 5
main( )
{ int a[3+2],b[7+FD];
……
}是合法的。
但是下述说明方式是错误的。
for (i=0; i<=9;i++) a[i]=i;
for(i=9;i>=0; i--) printf("%d ",a[i]);
printf("\n"); return 0; }
使a[0]~a[9]的值为0~9 先输出a[9],最后输出a[0]
整理课件
一维数组的初始化
数组初始化赋值是指在数组定义时给数组元素赋予初值。 初始化赋值的一般形式为:
for(i=0;i<1;i++) if (a[i]>a[i+1]) { ……}
零基础学C语言程序设计PPT课件(共15章)第7章 函数

7.8.1 使用库函数
不同的头文件中包含了不同类型的库函数。 如果想要使用库函数,需要将对应的头文件引入到代
码中。 引入头文件的语法如下所示。
#include<文件名>
尖括号可以使用一对英文的双引号代替,如下所示。
# include “文件名”
7.8.2 常见系统库
C语言中提供了很多系统库,不同的编译器支持的系 统库不同。常用的几个系统库进行展示,如表所示。
1.正余弦与反正余弦函数
C语言提供了正余弦与反正余弦函数,如表所示。
函数 sin(x) cos(x) asin(x) acos(x) sinh(x) cosh(x)
功能 求正弦值 求余弦值 求反正弦 求反余弦 求双曲正弦 求双曲余弦
2.正切与反正切函数
C语言提供了正切与反正切函数,如表所示。
…… 函数( ); …… } void 函数名( ) { …… }
函数声明
调用函数
7.3 使用参数
7.3.1 声明参数 7.3.2 传递参数
7.3.1 声明参数
声明参数是指在带参函数的首部对参数进行声明,语 法形式如下所示。
void 函数名(类型 形式参数)
多个形参
如果要声明多个形参,它们之间需要用逗号分割,其 语法形式如图所示。
log(x) log10(x) sqrt(x)
返回x的自然对数 返回x的常用对数(基数为10的对数) 返回x的平方根
exp(x) pow(x,y)
返回e的x次幂的值 返回x的y次方的值
7.10 小结
通过本章的学习,开发者需要知道以下的内容: 函数是结构形式。 函数组成。 调用函数。 声明参数。 返回值。 局部变量。 递归。 库函数。 math.h库函数。
《C语言程序设计》第七章函数

《C语言程序设计》第七章函数函数是C语言中的重要概念,是一段可重用的、功能独立的代码块,用于执行特定的任务。
在C语言中,函数具有以下几个重要的特点:1.函数定义和调用:函数通常包含函数头和函数体两个部分。
函数头包括函数的返回类型、函数名和参数列表,函数体则包含具体的执行语句。
函数定义后,就可以在其他地方调用这个函数来执行对应的任务。
2. 函数的返回值:函数可以有返回值,用于将执行结果返回给调用函数。
返回值可以是任意的基本数据类型或者自定义的结构体。
在函数定义时,需要声明函数的返回类型,并使用关键字``return``将返回值返回给调用方。
3.函数的参数:函数可以有零个或多个参数,用于接收调用方传递给函数的数据。
参数可以是任意的基本数据类型或者自定义的结构体。
在函数定义时,需要声明参数的类型和名称,在函数调用时,需要传入对应类型和数量的参数。
4.函数的递归调用:函数可以调用其他函数,也可以调用自己,这种调用方式称为递归调用。
递归函数通常有一个或多个递归终止条件,用于结束递归的过程。
5.函数的作用域:函数可以创建局部变量,这些变量的作用范围称为函数的作用域。
在函数外部无法访问函数内部的局部变量,但可以通过参数传递和返回值来实现数据的传递。
函数在程序设计中有着至关重要的作用,它可以将一个大的任务分解成多个小的子任务,并通过函数间的调用来解决问题。
通过合理地设计和使用函数,可以提高代码的复用性、可读性和可维护性,为程序的开发和维护带来便利。
在C语言中,函数的设计应遵循以下几个原则:1.单一职责原则:一个函数应该只负责一个具体的任务,保持函数的功能独立性,便于测试和重用。
2.函数参数的合理设计:函数的参数应该根据具体的功能需求来设计,尽量减少参数的数量和复杂度,以提高函数的可读性和易用性。
3.函数的返回值:函数的返回值应该在有需要的情况下使用,而不是为了返回单纯的状态信息或错误码。
合理设计返回值可以提高函数的灵活性和可重用性。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
统已提供的函数。例如: printf(); scanf(); sin(); putchar(); getchar(); (2)主函数:main()
(3)用户自定义函数,函数名不能与主函数名或库函
数名相同,函数体语句由用户自己编写。 (4) 空函数, 函数体无语句。
若干个源程序分别进行编译,编译效率高 。所以,一
个C程序又可以由若干个源文件组成。 (2)所有函数之间是互相独立的,即函数的定义不能 嵌套定义。 (3) 一个C程序从运行主函数开始执行,到主函数运
行终止,整个程序执行结束。
(4) 函数是构成C程序的基本单元,C语言是通过函数 来实现模块化程序设计 。
第7章 函
教学内容:
7.1 7.2 7.3 7.4 概述 函数定义 函数返回值 函数的调用
数
7.5
7.6
变量的作用域与存储类别
函数的存储类别
第7章
教学要求:
函 数
1.掌握函数的定义和调用方式,以及形参与 实参之间数据传递的规则。 2.掌握局部变量与全局变量、静态存储与动 态存储变量的使用方法。
3. 掌握递归函数的定义与调用。
写之间进行转换。
(4) 目录路径函数,用于文件目录和路径操作。 (5) 诊断函数,用于内部错误检测。 (6) 字符屏幕和图形功能函数 (7) 输入输出函数,用于完成输入输出功能。 (7) 接口函数,用于与DOS,BIOS和硬件的接口
3.函数的作用 (1) C编译系统可以对一个程序中的多个函数,分成
果不需要参数,则用“void”表示 。
( 2 ) 有参函数的一般形式 函数类型 函数名( 数据类型 参数1 [,数据类型 参数2 …] ) { 说明语句部分; 可执行语句部分;
}
形式参数:将函数定义中的参数表称为形式参数表,简 称形参表。与调用函数提供的实际参数区别。 实际参数:调用有参函数时,调用函数必须赋予这些参 数实际的值,调用函数中的参数称为实际参数。
定义,可以放在程序中的任意位置,即可以放在主
函数main()之前或放在主函数main()之后。 ⑶ 在一个函数的函数体内,不能再定义另一个 函数,即函数不能嵌套定义。 ⑷ 函数之间允许互相调用,以可以嵌套调用。
例 7.1 在程序的主函数中,执行了3次调用无参函数s() 语句 。 # include <stdio.h> void main() 运行结果 : { void s( ) ; /*函数调用说明 */ 11,301 函数调用 int i=0, a=10; 13,301 while ( i<3 ) 15,301 { ++a; printf(“%d,”,a++); s( ); i++;} 定义的函 } 数无参数 void s( void ) 无返回值 { int z=300; z++; printf(“%d\n”,z++); }
函数的另外分类方法:
(1)有参函数 (3)有返回值函数 (2)无参函数: (4)无返回值函数
2. 库函数分类(功能角度) (1) 数学函数,包括三角函数、指数等。 (2) 字符串、字符处理函数。 (3) 转换函数,用于字符或字符串的转换;在字符量 和各类数字量 (整型, 实型等)之间进行转换;在大、小
例7.2 定义一个函数,用于求两个数中的大数。 main() { int max( int x, int y );/*函数调用说明*/ int a1, a2 ,a3; printf("input two numbers:\n"); scanf("%d%d", &a1, &a2); a3= max(a1, a2); printf("max=%d\n ",a3); 带参数的用户 } 自定义函数 int max( int x, int y ) { int z; z=x>y ? x : y; return(z); }
int max( int x, int y ) { int z;
z=x>y ? x : y;
在新版本中写成一行:
int max( int x, int y )
return (z);
} 在老版本C语言中,参数类型说明允许放在函数说明
部分的第2行单独指定。 例: int max(x,y)
int x, y; { int z; z=x>y ? x : y; return (z); }
“表达式”的值带给调用函数。
(3) return 语句返回值的类型应与该函数的类型 一致。否则以函数类型为准。
(4) return 语句后面可以是变量,也可以是表达式。 如: return (x >y ? x : y);
(5) return 语句的后面可以有括号,也可以没有。
如: return z ; 或 return(z);
(6) 函数的返回值是通过 return 语句获得的。当不需 返回函数值时,可省去return语句。 调用函数中无 return 语句,并不是不返回一个值,
7.2
1.函数组成
函 数 定 义
函数(含主函数)都是由函数说明和函数体两部分。 (1)无参函数的一般形式: 函数类型 函数名( void ) { 说明语句部分; 可执行语句部分; } 注意 : 在旧标准中,函数可以缺省参数表。但在新 标准中,除主函数 main() 外,函数不可缺省参数表,如 函数体 函数说明
在老版本中写成二行:
int max(x, y ) int x, y;
7.3
函数返回值
C语言的函数从有无返回值这个角度考虑,可把
函数分为有返回值函数和无返回值函数两种。
有参函数的返回值,是通过函数中的 return 语 句来获得的。 (1)返回语句的格式: return ( 表达式 ); ( 2) return 语句的功能:返回调用函数,并将
( 3 ) 空函数其形式为: [函数类型] 函数名(void) { }
“空函数”既无参数、函数体为空的函数,什么操
作也不做。
其作用是在此处留一函数的位臵,以便将来扩充 功能之用。 函数名也在将来换取实际的函数名。
2、函数定义说明: ⑴ 在C语言中,所有函数(包括主函数main()) 都是平行的、独立的。 ⑵ 在一个包含多个函数的程序中,一个函数的