清华大学出版社 TSINGHUA UNIVERSITY PRESS 如果在定义函数时不指定函数类型,系统会隐含指定 函数类型为int型。因此上面定义的max函数左端的 int可以省写。 3.可以有“空函数” 它的形式为 类型说明符函数名() 例如: dummy(i 调用此函数时,什么工作也不做,没有任何实际作用。 在主调函数中写上“ dummy();”表明“这里
如果在定义函数时不指定函数类型,系统会隐含指定 函数类型为int型。因此上面定义的max函数左端的 int可以省写。 3. 可以有“空函数” 它的形式为 类型说明符函数名( ) { } 例如: dummy(){} 调用此函数时,什么工作也不做,没有任何实际作用。 在主调函数中写上“dummy();” 表明 “这里
清华大学出版社 TSINGHUA UNIVERSITY PRESS 要调用一个函数”,而现在这个函数没有起作用 等以后扩充函数功能时补充上。在程序设计中往 往根据需要确定若干模块,分别由一些函数来实 现。而在第一阶段只设计最基本的模块,其他 些次要功能或锦上添花的功能则在以后需要时陆 续补上。在编写程序的开始阶段,可以在将来准 备扩充功能的地方写上一个空函数(函数名取将 来采用的实际函数名(如用 merge() matproduct()、 concatenate()、shel()等, 分别代表合并、矩阵相乘、字符串连接、希尔法 排序等),只是这些函数未编好,先占一个位置, 以后用一个编好的函数代替它。这样做,程序的 结构清楚
要调用一个函数”, 而现在这个函数没有起作用, 等以后扩充函数功能时补充上。 在程序设计中往 往根据需要确定若干模块, 分别由一些函数来实 现。 而在第一阶段只设计最基本的模块, 其他一 些次要功能或锦上添花的功能则在以后需要时陆 续补上。在编写程序的开始阶段,可以在将来准 备扩充功能的地方写上一个空函数(函数名取将 来采用的实际函数名(如用merge()、 matproduct()、oncatenate()、shell()等, 分别代表合并、矩阵相乘、字符串连接、希尔法 排序等),只是这些函数未编好,先占一个位置, 以后用一个编好的函数代替它。这样做,程序的 结构清楚
清华大学出版社 TSINGHUA UNIVERSITY PRESS 可读性好,以后扩充新功能方便,对程序结构影 响不大。空函数在程序设计中常常是有用的。 4.对形参的声明的传统方式 在老版本C语言中,对形参类型的声明是放在函数 定义的笫2行,也就是不在第1行的括号内指定形 参的类型,而在括号外单独指定,例如上面定义 的max函数可以写成以下形式: int max(x,y)指定形参x,y*/ int x, y5 /对形参指定类型* fint
可读性好,以后扩充新功能方便,对程序结构影 响不大。空函数在程序设计中常常是有用的。 4. 对形参的声明的传统方式 在老版本C语言中,对形参类型的声明是放在函数 定义的笫2行,也就是不在笫1行的括号内指定形 参的类型,而在括号外单独指定,例如上面定义 的max函数可以写成以下形式: int max(x,y) /* 指定形参x,y */ int x,y; /* 对形参指定类型 */ {int z;
清华大学出版社 TSINGHUA UNIVERSITY PRESS z=X>y?X: y; return(z 般把这种方法称为传统的对形参的声明方式,而 把前面介绍过的方法称为现代的方式。 Turbo c和 目前使用的多数C版本对这两种方法都允许使用, 两种用法等价,ANSI新标准推荐前一种方法,即 现代方式。它与 PASCAL语言中所用的方法是类 似的。本书中的程序采用新标准推荐的现代方式 但由于有些过去写的书籍和程序使用传统方式, 因此读者应对它有所了解,以便能方便地阅读它
z = x > y ? x: y; return(z); } 一般把这种方法称为传统的对形参的声明方式,而 把前面介绍过的方法称为现代的方式。Turbo C和 目前使用的多数C版本对这两种方法都允许使用, 两种用法等价,ANSI新标准推荐前一种方法,即 现代方式。它与PASCAL语言中所用的方法是类 似的。本书中的程序采用新标准推荐的现代方式。 但由于有些过去写的书籍和程序使用传统方式, 因此读者应对它有所了解,以便能方便地阅读它 们
清华大学出版社 TSINGHUA UNIVERSITY PRESS 83函数参数和函数的值 83.1形式参数和实际参数 在调用函数时,大多数情况下,主调函数和被调用 函数之间有数据传递关系。这就是前面提到的有 参函数。前面已提到:在定义函数时函数名后面 括弧中的变量名称为“形式参数”(简称“形 参”),在主调函数中调用一个函数时,函数名 后面括弧中的参数可以是一个表达式)称为“实际 参数”(简称“实参”)。 例8.2调用函数时的数据传递。 main O lint a, b
8.3.1 形式参数和实际参数 在调用函数时,大多数情况下,主调函数和被调用 函数之间有数据传递关系。这就是前面提到的有 参函数。前面已提到:在定义函数时函数名后面 括弧中的变量名称为“形式参数”(简称“形 参”),在主调函数中调用一个函数时,函数名 后面括弧中的参数(可以是一个表达式)称为“实际 参数”(简称“实参”)。 例8.2调用函数时的数据传递。 main() {int a,b,c; 8.3 函数参数和函数的值