⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 王大刚--c语言编程宝典--函数.htm

📁 初学者的良师益友。其中包括C的全部教程。
💻 HTM
📖 第 1 页 / 共 3 页
字号:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<!-- saved from url=(0038)http://www.hjflying.8u8.com/cl/018.htm -->
<HTML><HEAD><TITLE>王大刚-->C语言编程宝典-->函数</TITLE>
<META http-equiv=Content-Type content="text/html; charset=GB2312">
<META content="王大刚 C语言编程宝典 函数" name=keywords>
<META content="王大刚 - C语言编程宝典 - 函数" name=description>
<STYLE>#page {
	LEFT: 0px; POSITION: absolute; TOP: 0px
}
.tt3 {
	FONT: 9pt/12pt "宋体"
}
.tt2 {
	FONT: 12pt/15pt "宋体"
}
A {
	TEXT-DECORATION: none
}
A:hover {
	COLOR: blue; TEXT-DECORATION: underline
}
</STYLE>

<META content="MSHTML 6.00.2600.0" name=GENERATOR></HEAD>
<BODY text=#000000 vLink=#006699 aLink=#9900ff link=#006699 bgColor=#ffffff 
leftMargin=3 topMargin=3 marginwidth="3" marginheight="3">
<TABLE cellSpacing=0 cellPadding=10 width="100%" border=0>
  <TBODY>
  <TR>
    <TD class=tt3 vAlign=top width="8%" bgColor=#e0e0e0><STRONG><A 
      href="http://www.hjflying.8u8.com/cl/019.htm">后一页</A><BR><A 
      href="http://www.hjflying.8u8.com/cl/017.htm">前一页</A><BR><A 
      href="http://www.hjflying.8u8.com/cl/index.html">回目录</A><BR><A 
      href="http://www.hjflying.8u8.com/index.htm">回首页</A><BR></STRONG></TD>
    <TD class=tt2 width="84%" bgColor=#f5f8f8>
      <CENTER><B><FONT style="FONT-SIZE: 16.5pt" face=楷体_GB2312 
      color=#ff6666>函数</FONT></B></CENTER>
      <HR width="94%" color=#ee9b73 SIZE=1>
      <BR>
      <P>&nbsp;&nbsp;&nbsp; C程序是由一组或是变量或是函数的外部对象组成的。 函数是一个自我包含的 
      <BR>完成一定相关功能的执行代码段。我们可以把函数看成一个"黑盒子", 你只要将数 <BR>据送进去就能得到结果, 而函数内部究竟是如何工作的的, 
      外部程序是不知道的。 <BR>外部程序所知道的仅限于输入给函数什么以及函数输出什么。函数提供了编制程序 <BR>的手段, 
      使之容易读、写、理解、排除错误、修改和维护。 <BR>&nbsp;&nbsp;&nbsp; C程序中函数的数目实际上是不限的, 
      如果说有什么限制的话, 那就是, 一个C <BR>程序中必须至少有一个函数, 而且其中必须有一个并且仅有一个以main为名, 这个 
      <BR>函数称为主函数, 整个程序从这个主函数开始执行。 <BR>&nbsp;&nbsp;&nbsp; C 
      语言程序鼓励和提倡人们把一个大问题划分成一个个子问题, 对应于解决一 <BR>个子问题编制一个函数, 因此, C 
      语言程序一般是由大量的小函数而不是由少量大 <BR>函数构成的, 即所谓"小函数构成大程序"。这样的好处是让各部分相互充分独立, 
      <BR>并且任务单一。因而这些充分独立的小模块也可以作为一种固定规格的小"构件", <BR>用来构成新的大程序。 
      <BR>&nbsp;&nbsp;&nbsp; C语言的一个主要特点是可以建立库函数。Turbo C2.0提供的运行程序库有400 <BR>多个函数, 
      每个函数都完成一定的功能, 可由用户随意调用。这些函数总的分为输 <BR>入输出函数、数学函数、字符串和内存函数、与BIOS和DOS有关的函数、 
      字符屏幕 <BR>和图形功能函数、过程控制函数、目录函数等。对这些库函数应熟悉其功能, 只有 <BR>这样才可省去很多不必要的工作。 
      <BR>&nbsp;&nbsp;&nbsp; 本教程后半部分专门介绍Turbo C2.0的库函数, 并对每个函数都给出例程, 读 
      <BR>者可以将自已需要的部分以块的方式定义, 然后将此块写入文件, 这样就可以在进 <BR>入Turbo C2.0集成开发环境后, 
      直接调用此程序, 连接, 运行, 观察结果, 以加深 <BR>对该函数的理解。 <BR>&nbsp;&nbsp;&nbsp; 用户编制Turbo 
      C语言源程序, 就是利用Turbo C的库函数。可以把所有使用的 <BR>库函数放在一个庞大的主函数里, 也可以按不同功能设计成一个个用户函数而被其 
      <BR>它函数调用。Turbo C2.0建议用户使用后者, 当用户编制了一些较常用的函数时, <BR>只要将其存在函数库里, 
      在以后的编程中可被方便的调用而不需要再去编译它们。 <BR>连接时将会自动从相应的库中装配成所需程序。 <BR>
      <P>&nbsp;&nbsp;&nbsp; 1. 函数的说明与定义 <BR>&nbsp;&nbsp;&nbsp; Turbo 
      C2.0中所有函数与变量一样在使用之前必须说明。所谓说明是指说明函 <BR>数是什么类型的函数, 
      一般库函数的说明都包含在相应的头文件&lt;*.h&gt;中,&nbsp; 例如标 <BR>准输入输出函数包含在stdio.h中, 
      非标准输入输出函数包含在io.h中,&nbsp; 以后在使 <BR>用库函数时必须先知道该函数包含在什么样的头文件中, 
      在程序的开头用#include <BR>&lt;*.h&gt;或#include"*.h"说明。只有这样程序在编译, 连接时Turbo C 
      才知道它是提 <BR>供的库函数, 否则, 将认为是用户自己编写的函数而不能装配。 <BR>
      <P>&nbsp;&nbsp;&nbsp; 1.1 函数说明 <BR>
      <P>&nbsp;&nbsp;&nbsp; 1. 经典方式 
      <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 其形式为:&nbsp; 
      函数类型&nbsp;&nbsp; 函数名(); <BR>&nbsp;&nbsp;&nbsp; 2. ANSI 规定方式 
      <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 其形式为:&nbsp; 
      函数类型&nbsp; 函数名(数据类型&nbsp; 形式参数,&nbsp; 数据类型&nbsp; 形式 
      <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
      参数, ......); <BR>&nbsp;&nbsp;&nbsp; 其中: 函数类型是该函数返回值的数据类型, 可以是以前介绍的整型(int), 
      <BR>长整型(long), 字符型(char), 单浮点型(float), 双浮点型(double)以及无值型 <BR>(void), 
      也可以是指针, 包括结构指针。无值型表示函数没有返回值。 <BR>&nbsp;&nbsp;&nbsp; 函数名为Turbo C2.0的标识符, 
      小括号中的内容为该函数的形式参数说明。可 <BR>以只有数据类型而没有形式参数, 也可以两者都有。对于经典的函数说明没有参数 <BR>信息。如: 
      <BR>&nbsp;&nbsp;&nbsp;&nbsp; int putlll(int x,int y,int z,int color,char 
      *p)/*说明一个整型函数*/ <BR>&nbsp;&nbsp;&nbsp;&nbsp; char 
      *name(void);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
      /*说明一个字符串指什函数*/ <BR>&nbsp;&nbsp;&nbsp;&nbsp; void student(int n, char 
      *str); /*说明一个不返回值的函数*/ <BR>&nbsp;&nbsp;&nbsp;&nbsp; float 
      calculate();&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
      /*说明一个浮点型函数*/ <BR>&nbsp;&nbsp;&nbsp; 注意: 如果一个函数没有说明就被调用, 编译程序并不认为出错, 而将此函数 
      <BR>默认为整型(int)函数。因此当一个函数返回其它类型, 又没有事先说明,&nbsp; 编译时 <BR>将会出错。 <BR>
      <P>&nbsp;&nbsp;&nbsp; 1.2 函数定义 <BR>&nbsp; <BR>&nbsp;&nbsp;&nbsp; 
      函数定义就是确定该函数完成什么功能以及怎么运行, 相当于其它语言的一个 <BR>子程序。Turbo C2.0对函数的定义采用ANSI规定的方式。即: 
      <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 函数类型&nbsp; 函数名(数据类型形式参数; 数据类型 
      形式参数...) <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; { 
      <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 函数体; 
      <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } <BR>&nbsp;&nbsp;&nbsp; 
      其中函数类型和形式参数的数据类型为Turbo C2.0的基本数据类型。函数体为 <BR>Turbo 
      C2.0提供的库函数和语句以及其它用户自定义函数调用语句的组合, 并包括 <BR>在一对花括号"{"和"}"中。 
      <BR>&nbsp;&nbsp;&nbsp; 需要指出的是一个程序必须有一个主函数, 其它用户定义的子函数可以是任意 <BR>多个, 
      这些函数的位置也没有什么限制, 可以在main()函数前,&nbsp; 也可以在其后。 <BR>Turbo 
      C2.0将所有函数都被认为是全局性的。而且是外部的, 即可以被另一个文件 <BR>中的任何一个函数调用。 <BR>
      <P>&nbsp;&nbsp;&nbsp; 2 函数的调用 <BR>
      <P>&nbsp;&nbsp;&nbsp; 2.1&nbsp; 函数的简单调用 <BR>&nbsp;&nbsp;&nbsp; Turbo 
      C2.0调用函数时直接使用函数名和实参的方法, 也就是将要赋给被调用 <BR>函数的参量, 按该函数说明的参数形式传递过去, 然后进入子函数运行, 
      运行结束 <BR>后再按子函数规定的数据类型返回一个值给调用函数。使用Turbo C2.0的库函数就 <BR>是函数简单调用的方法。举例说明如下: 
      <BR>&nbsp;&nbsp;&nbsp; 例1: <BR>&nbsp;&nbsp;&nbsp;&nbsp; 
      #include&lt;stdio.h&gt; <BR>&nbsp;&nbsp;&nbsp;&nbsp; int maxmum(int x, int 
      y, int z);&nbsp;&nbsp; /*说明一个用户自定义函数*/ <BR>&nbsp;&nbsp;&nbsp;&nbsp; int 
      main() <BR>&nbsp;&nbsp;&nbsp;&nbsp; { 
      <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int i, j, k; 
      <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; printf("i, j, 
      k=?\n"); <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
      scanf("%4d%4d%4d", &amp;i, &amp;j, &amp;k); 
      <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; maxmum(i, j, 
      k); <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; getch(); 
      <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return 0; 
      <BR>&nbsp;&nbsp;&nbsp;&nbsp; } <BR>&nbsp; <BR>&nbsp;&nbsp;&nbsp;&nbsp; 
      maxmum(int x, int y, int z) <BR>&nbsp;&nbsp;&nbsp;&nbsp; { 
      <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int max; 
      <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; max=x&gt;y?x:y; 
      <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
      max=max&gt;z?max:z; 
      <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; printf("The 
      maxmum value of the 3 data is %d\n", max); <BR>&nbsp;&nbsp;&nbsp;&nbsp; } 
      <BR>
      <P>&nbsp;&nbsp;&nbsp; 2.2 函数参数传递 <BR>&nbsp; <BR>&nbsp;&nbsp;&nbsp; 
      一、调用函数向被调用函数以形式参数传递 <BR>&nbsp;&nbsp;&nbsp; 用户编写的函数一般在对其说明和定义时就规定了形式参数类型, 
      因此调用这 <BR>些函数时参量必须与子函数中形式参数的数据类型、顺序和数量完全相同, 否则在 <BR>调用中将会出错, 得到意想不到的结果。 
      <BR>&nbsp;&nbsp;&nbsp; 注意: <BR>&nbsp;&nbsp;&nbsp; 当数组作为形式参数向被调用函数传递时, 
      只传递数组的地址, 而不是将整个 <BR>数组元素都复制到函数中去, 即用数组名作为实参调用子函数, 调用时指向该数组 
      <BR>第一个元素的指针就被传递给子函数。因为在Turbo C2.0中, 没有下标的数组名就 
      <BR>是一个指向该数组第一个元素的指针。当然数组变量的类型在两个函数中必须相同。 <BR>&nbsp;&nbsp;&nbsp; 
      用下述方法传递数组形参。 <BR>&nbsp;&nbsp;&nbsp; 例2: <BR>&nbsp;&nbsp;&nbsp;&nbsp; 
      #include&lt;stdio.h&gt; <BR>&nbsp;&nbsp;&nbsp;&nbsp; void disp(int *n); 
      <BR>&nbsp;&nbsp;&nbsp;&nbsp; int main() <BR>&nbsp;&nbsp;&nbsp;&nbsp; { 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -