📄 c46.htm
字号:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>概要 </title>
<script language="javascript">
var prePage="http://www.nec.sjtu.edu.cn/support/Course/C/c/c4/c/c4/c45.htm";
var nextPage="c/c5/c50.htm";
</script>
<link rel="stylesheet" href="../cstyle.css" type="text/css">
</head>
<body background="../img/mainback.jpg" bgproperties="fixed">
<h2 align="center"><font face="楷体_GB2312">4.6 概要</font></h2>
<hr>
<p><big>本章小结:</big><font FACE="宋体" SIZE="3"></p>
<blockquote>
<p ALIGN="JUSTIFY">我们在本章中学到了: </p>
<p ALIGN="JUSTIFY"><img src="../img/dot.gif" alt="dot.gif (114 bytes)" WIDTH="7"
HEIGHT="7"> 如何定义一个函数。</p>
<p ALIGN="JUSTIFY"><img src="../img/dot.gif" alt="dot.gif (114 bytes)" WIDTH="7"
HEIGHT="7"> 如何把信息传递给一个函数: 用参数。</p>
<p ALIGN="JUSTIFY"><img src="../img/dot.gif" alt="dot.gif (114 bytes)" WIDTH="7"
HEIGHT="7"> 什么时候和如何用 return。</p>
<p ALIGN="JUSTIFY"><img src="../img/dot.gif" alt="dot.gif (114 bytes)" WIDTH="7"
HEIGHT="7"> 形式参数和实际参数的区别: 一个是函数用的变量,
一个是来自调用函数的值。</p>
<p ALIGN="JUSTIFY"><img src="../img/dot.gif" alt="dot.gif (114 bytes)" WIDTH="7"
HEIGHT="7"> 在哪里说明参数: 在函数后面的圆括号内。</p>
<p ALIGN="JUSTIFY"><img src="../img/dot.gif" alt="dot.gif (114 bytes)" WIDTH="7"
HEIGHT="7"> 函数一般是 int 类型的。如果函数的返回类型不是int 类型,
那么你必须在函数定义中和调用函数的说明部分指定类型。</p>
<p ALIGN="JUSTIFY"><img src="../img/dot.gif" alt="dot.gif (114 bytes)" WIDTH="7"
HEIGHT="7"> 变量的存储类型决定了它的作用范围和存在的时间。</p>
<p ALIGN="JUSTIFY"><img src="../img/dot.gif" alt="dot.gif (114 bytes)" WIDTH="7"
HEIGHT="7"> 函数原型定义包括参数表中每个参数的类型说明。</p>
<p ALIGN="JUSTIFY"><img src="../img/dot.gif" alt="dot.gif (114 bytes)" WIDTH="7"
HEIGHT="7"> 函数原型说明包括了参数表中的参数说明。</p>
<p ALIGN="JUSTIFY"><img src="../img/dot.gif" alt="dot.gif (114 bytes)" WIDTH="7"
HEIGHT="7"> 函数原型说明能使编译器对参数进行类型检查。</p>
<p ALIGN="JUSTIFY"><img src="../img/dot.gif" alt="dot.gif (114 bytes)" WIDTH="7"
HEIGHT="7"> 如果一个函数在执行过程中调用它自己,
那么这个函数就称之为递归函数。<br>
<br>
<img src="../img/dot.gif" alt="dot.gif (114 bytes)" WIDTH="7" HEIGHT="7">
为了确保递归函数能正常执行, 你应该遵循以下的规则: <br>
1. 每当一个递归函数被调用时,
程序应该先检查某个基本条件是否满足了。如果满足了,
那么函数就应该停止递归。<br>
2. 每当函数被递归调用时, 参数应该逐步接近这个基本条件。<br>
<br>
<img src="../img/dot.gif" alt="dot.gif (114 bytes)" WIDTH="7" HEIGHT="7">
迭代解法要比递归解法快。 </p>
<p ALIGN="JUSTIFY"><img src="../img/dot.gif" alt="dot.gif (114 bytes)" WIDTH="7"
HEIGHT="7"> 为了把一个递归解法转化为相应的迭代解法,
通常需要引进一个或多个局部变量, 用来计数或控制此过程。</p>
<p ALIGN="JUSTIFY"><img src="../img/dot.gif" alt="dot.gif (114 bytes)" WIDTH="7"
HEIGHT="7"> C 支持实参类型及个数均可变的函数。 </p>
<p ALIGN="JUSTIFY"><img src="../img/dot.gif" alt="dot.gif (114 bytes)" WIDTH="7"
HEIGHT="7"> 此类函数的所有定义和说明都必须包含省略号 (...)
终结符。<br>
<br>
<img src="../img/dot.gif" alt="dot.gif (114 bytes)" WIDTH="7" HEIGHT="7"> 头文件
<stdarg.h> 说明了一种类型,定义了三个宏,
它们用来处理对被调用函数来说数目和类型都不确定的一组参数。<br>
va_list <br>
void va_start( va_list argptr,last_fixed_parameter);<br>
type va_arg( va_list argptr, type);<br>
void va_end( va_list argptr);<br>
<br>
<img src="../img/dot.gif" alt="dot.gif (114 bytes)" WIDTH="7" HEIGHT="7">
变量的存储类型决定了它的作用范围和存在的时间<br>
</p>
<p ALIGN="JUSTIFY"><img src="../img/dot.gif" alt="dot.gif (114 bytes)" WIDTH="7"
HEIGHT="7"> 存储类型是由变量被定义的地方和相关的关键字决定的。</p>
<p ALIGN="JUSTIFY"><img src="../img/dot.gif" alt="dot.gif (114 bytes)" WIDTH="7"
HEIGHT="7"> 特征: <br>
存储类别 关键字 生存时间 作用范围<br>
自动类 auto 暂时的 局部 <br>
寄存器类 register 暂时的 局部 <br>
静态 static 长久的 局部 <br>
外部 extern 长久的 全局 <br>
</p>
</blockquote>
</font>
<p align="center"><a href="../c5/c50.htm"><img src="../img/next.gif" width="145"
height="30" alt="next.gif (3633 bytes)" border="0"></a></p>
</body>
</html>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -