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

📄 c65.htm

📁 经典c语言教程
💻 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/c6/c/c6/c64.htm";
   var nextPage="c/c6/c66.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"><a name="_top"></a>6.5 <font COLOR="#000000">指向函数的指针</font></font></h2>

<table border="0" width="100%">
  <tr>
    <td width="50%"><p align="center"><a href="c65.htm#c651.html#c651">介绍</a></td>
    <td width="50%"><p align="center"><a href="c65.htm#c652.html#c652">例子</a></td>
  </tr>
</table>

<hr>

<h3><a name="c651"></a>1.介绍</h3>

<blockquote>
  <p>函数指针是 C 语言中最有用的功能, 但它也容易与变量发生混淆.发生混淆的原因是, 
  尽管函数不是变量, 但由于它在内存中有一个物理位置, 
  而这个位置是可以赋给一个指针的。一个函数的地址就是该函数的入口点; 
  因此,<br>
  函数指针可被用来调用一个函数。<br>
  <br>
  函数的地址是用不带任何括号或参数的函数名来得到的。(这很类似于数组地址的得到方法, 
  即, 在只有数组名而无下标时就得到数组地址。)</p>
  <p>怎样说明一个函数指针变量呢? <br>
  为了说明一个变量 fn_pointer 的类型是&quot;返回值为 int 的函数指针&quot;, 
  你可以使用下面的说明语句:<br>
  <font color="#000080"><strong><big>int (*fn_pointer) ();</big></strong></font><br>
  为了让编译器能正确地解释这句语句, *fn_pointer 
  必须用括号围起来。若漏了这对括号, 则:<br>
  int *fn_pointer ();<br>
  的意思完全不同了。fn_pointer 将是一个函数名, 其返回值为 int 
  类型的指针。<br>
  <br>
  单目间址运算符 <font color="#FF00FF">*</font> 的优先级低于 <font
  color="#FF00FF">( )</font> 运算符, 因此必须使用括号, 以指出 fn_pointer 
  是一个指向返回值为 int <br>
  类型的函数的指针, 而不是一个返回值为 int 指针的函数。<br>
  <br>
  <br>
  让我们学习下面这个程序。<br>
  <br>
  </p>
  <p align="center"><!-- Aftershock c651.swf 3=500 4=380 40 --> 
  <object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"
  codebase="http://active.macromedia.com/flash2/cabs/swflash.cab#version=3,0,0,0" ID="c651"
  WIDTH="500" HEIGHT="380">
    <param name="movie" value="../movie/c651.swf">
    <param name="quality" value="autohigh">
    <param name="bgcolor" value="#FFFFCC"><embed SRC="../movie/c651.swf" swLiveConnect="FALSE" WIDTH="500" HEIGHT="380"
QUALITY="autohigh" BGCOLOR="#FFFFCC" TYPE="application/x-shockwave-flash"
PLUGINSPAGE="http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash">
  </object>
<!-- EndAftershock c651.swf -->  </p>
  <p align="right"><a href="c65.htm#_top.html#_top">返回页首</a></p>
</blockquote>

<hr>

<h3><a name="c652"></a>2.例子</h3>

<blockquote>
  <p align="center">  
  <object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"
  codebase="http://active.macromedia.com/flash2/cabs/swflash.cab#version=3,0,0,0" ID="c652"
  WIDTH="550" HEIGHT="400">
    <param name="movie" value="../movie/c652.swf">
    <param name="quality" value="autohigh">
    <param name="bgcolor" value="#FFFFCC"><embed SRC="../movie/c652.swf" swLiveConnect="FALSE" WIDTH="550" HEIGHT="400"
QUALITY="autohigh" BGCOLOR="#FFFFCC" TYPE="application/x-shockwave-flash"
PLUGINSPAGE="http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash">
  </object>
<!-- EndAftershock c652.swf -->  </p>
  <p align="right"><a href="c65.htm#_top.html#_top">返回页首</a></p>
</blockquote>

<p align="center"><a href="http://www.nec.sjtu.edu.cn/support/Course/C/c/c6/c66.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 + -