subject_13984.htm

来自「一些关于vc的问答」· HTM 代码 · 共 66 行

HTM
66
字号
<p>
序号:13984 发表者:留香久 发表日期:2002-09-02 10:51:02
<br>主题:一个关于函数指针的问题!帮帮我!
<br>内容:我是一个初学者,很不好意思,遇到了一个问题,百思不得其解!请各位大虾的帮助!谢谢了!<BR>我在谭浩强教授的《C程序设计》这本书中看到如下一段程序:<BR>main()<BR>{<BR>&nbsp;&nbsp;&nbsp;&nbsp;int max();<BR>&nbsp;&nbsp;&nbsp;&nbsp;int(*p)();<BR>&nbsp;&nbsp;&nbsp;&nbsp;int a,b,c;<BR>&nbsp;&nbsp;&nbsp;&nbsp;p=max;<BR>&nbsp;&nbsp;&nbsp;&nbsp;scanf("%d,%d",&a,&b);<BR>&nbsp;&nbsp;&nbsp;&nbsp;c=(*p)(a,b);<BR>&nbsp;&nbsp;&nbsp;&nbsp;printf("a=%d,b=%d,max=%d",a,b,c);<BR>}<BR>int max(int a,int b)<BR>{<BR>&nbsp;&nbsp;&nbsp;&nbsp;int c;<BR>&nbsp;&nbsp;&nbsp;&nbsp;if(a&gt;b) c=a;<BR>&nbsp;&nbsp;&nbsp;&nbsp;else c=b;<BR>&nbsp;&nbsp;&nbsp;&nbsp;return c;<BR>}<BR><BR>我在VC6。0中新建了一个DOS模式控制台,输入下面程序,但是无论如和都通不过,有1个错误,系统提示指针P带的参数太多了!不知道是怎么回事!在下谢谢了!<BR>#include&lt;iostream.h&gt;<BR>#include&lt;stdio.h&gt;<BR>void main()<BR>{<BR>&nbsp;&nbsp;&nbsp;&nbsp;int max();<BR>&nbsp;&nbsp;&nbsp;&nbsp;int(*p)();<BR>&nbsp;&nbsp;&nbsp;&nbsp;int a,b,c;<BR>&nbsp;&nbsp;&nbsp;&nbsp;p=max;<BR>&nbsp;&nbsp;&nbsp;&nbsp;cin&gt;&gt;a;<BR>&nbsp;&nbsp;&nbsp;&nbsp;cin&gt;&gt;b;<BR>&nbsp;&nbsp;&nbsp;&nbsp;c=(*p)(a,b);<BR>&nbsp;&nbsp;&nbsp;&nbsp;cout&lt;&lt;c&lt;&lt;endl;<BR>}<BR>int max(int a,int b)<BR>{<BR>&nbsp;&nbsp;&nbsp;&nbsp;int c;<BR>&nbsp;&nbsp;&nbsp;&nbsp;if(a&gt;b) c=a;<BR>&nbsp;&nbsp;&nbsp;&nbsp;else c=b;<BR>&nbsp;&nbsp;&nbsp;&nbsp;return c;<BR>}
<br><a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p>
<hr size=1>
<blockquote><p>
回复者:小飞帅 回复日期:2002-09-02 10:54:28
<br>内容:在主函数的声明里要写成:<BR><BR>void main()<BR>{<BR>&nbsp;&nbsp;&nbsp;&nbsp;int max(int a,int b);<BR>&nbsp;&nbsp;&nbsp;&nbsp;int(*p)();<BR>&nbsp;&nbsp;&nbsp;&nbsp;
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:留香久 回复日期:2002-09-02 11:00:26
<br>内容:小飞帅!我试了,但是不行!
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:了了 回复日期:2002-09-02 11:05:05
<br>内容:#include&lt;iostream.h&gt;<BR>#include&lt;stdio.h&gt;<BR><BR>int max(int a,int b)<BR>{<BR>&nbsp;&nbsp;&nbsp;&nbsp;int c;<BR>&nbsp;&nbsp;&nbsp;&nbsp;if(a&gt;b) c=a;<BR>&nbsp;&nbsp;&nbsp;&nbsp;else c=b;<BR>&nbsp;&nbsp;&nbsp;&nbsp;return c;<BR>}&nbsp;&nbsp;<BR><BR><BR>void main()<BR>{<BR>&nbsp;&nbsp;&nbsp;&nbsp;int(*p)();<BR>&nbsp;&nbsp;&nbsp;&nbsp;int a,b,c;<BR>&nbsp;&nbsp;&nbsp;&nbsp;p=max;<BR>&nbsp;&nbsp;&nbsp;&nbsp;cin&gt;&gt;a;<BR>&nbsp;&nbsp;&nbsp;&nbsp;cin&gt;&gt;b;<BR>&nbsp;&nbsp;&nbsp;&nbsp;c=(*p)(a,b);<BR>&nbsp;&nbsp;&nbsp;&nbsp;cout&lt;&lt;c&lt;&lt;endl;<BR>}<BR><BR>这么试一下
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:留香久 回复日期:2002-09-02 11:13:23
<br>内容:了了兄!<BR>你试了没有?反正我试了,不行!真是奇怪!
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
<font color=red>答案被接受</font><br>回复者:了了 回复日期:2002-09-02 11:20:29
<br>内容:我又试了一下,应该这么定义<BR>int(*p)(int,int);
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:了了 回复日期:2002-09-02 11:30:19
<br>内容:这样p才是一个指向有两个int型形参的函数的指针
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:留香久 回复日期:2002-09-02 12:07:51
<br>内容:谢谢!行了!但是还要问一下,VC里只能这么办吗?好象没有前面教材那样灵活哟,谭浩强在书里说,这个指针可以指向任何函数,而这样的话只能指向两个整型形参的函数了!是这样吗?
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:了了 回复日期:2002-09-02 12:14:54
<br>内容:c和c++还是有很大区别的,少了一点灵活性,多了一点稳定性,没有什么十全十美的
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:留香久 回复日期:2002-09-02 14:49:21
<br>内容:谢谢了了!<BR>不好意思还有一个问题?:-)怎么才能提高自己的提问可用分!我都快没有了!那怎么办呢?呜呜……我很菜吧?<BR>再次谢谢了!嘿嘿……
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:了了 回复日期:2002-09-02 17:14:28
<br>内容:好象跟你登陆的次数有关,我也不太清楚^_^
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>

⌨️ 快捷键说明

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