打印

函数指针问题

[复制链接]
786|4
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
秋天落叶|  楼主 | 2012-8-27 17:52 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
有道题定义一个函数指针如下

int max(int x,int y)
{
return x>=y?x:y;
}
int main
{
int max(int,int);
int(*p)(int,int)=&max;//疑问:这里的max本身不就是地址了么,还加一个&不成了指向地址的指针了啊???
}

在谭浩强的书里面有个类似例子是这样的:
int max(int x,int y)
{
return x>=y?x:y;
}

int main
{
int max(int,int);
int(*p)(int,int);
p=max;//疑问:这跟上面的对应处到底哪个是对的啊???

}

相关帖子

沙发
hsbjb| | 2012-8-27 18:10 | 只看该作者
两个都是可以的

使用特权

评论回复
板凳
无冕之王| | 2012-8-27 18:18 | 只看该作者
两个都是可以的,但是p=max这样把函数当成指针的写法是比较规范的。

使用特权

评论回复
地板
gxgclg| | 2012-8-27 18:28 | 只看该作者
定义普通变量的时候,类型在左边,变量在右边
定义函数指针的时候,类型在两边,变量在中间
LZ前者是赋值初始化,一个是先定义,后赋值

使用特权

评论回复
5
火箭球迷| | 2012-8-27 18:39 | 只看该作者
函数名就是函数地址,取地址还是函数地址。
调用时,可通过函数名指针(地址)调用,也可以在前面加 * 来调用。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:落叶很美

138

主题

3044

帖子

1

粉丝