标题:这个指针调用函数为什么不可以?
只看楼主
福建刘德华
Rank: 1
等 级:新手上路
帖 子:17
专家分:0
注 册:2020-2-13
结帖率:50%
 问题点数:0 回复次数:5 
这个指针调用函数为什么不可以?
void main()
{
    int max(int,int);
   
    int (*p)();
    int a,b,c;
   
    p=max;
   
    scanf("%d %d",&a, &b);
   
    c = (*p)(a,b);
   
    printf("a=%d,b=%d,max=%d\n",a,b,c);
}

int max(int x,int y)
{
    int z;
   
    if( x > y )
    {
        z = x;
    }
    else
    {
        z = y;
    }
   
    return z;
}
搜索更多相关主题的帖子: 调用 int max 指针 函数 
2020-02-16 17:34
福建刘德华
Rank: 1
等 级:新手上路
帖 子:17
专家分:0
注 册:2020-2-13
得分:0 
求大神解答
2020-02-16 17:34
xianfajushi
Rank: 7Rank: 7Rank: 7
等 级:黑侠
威 望:8
帖 子:527
专家分:690
注 册:2007-9-8
得分:0 
程序代码:
int max11(int x, int y)
{
    int z;

    if (x > y)
    {
        z = x;
    }
    else
    {
        z = y;
    }

    return z;
}

程序代码:
    int(*p)(int a,int b);
    int a, b, c;

    p = max11;

    scanf_s("%d %d", &a, &b);

    c = (*p)(a, b);

    printf("a=%d,b=%d,max=%d\n", a, b, c);
2020-02-16 18:14
hellobird
Rank: 2
等 级:论坛游民
威 望:3
帖 子:14
专家分:47
注 册:2017-4-17
得分:0 
以下是引用福建刘德华在2020-2-16 17:34:20的发言:
#include <stdio.h> //add head files
//void main()
int main(void)
{
    int max(int,int);
   
    //int (*p)();
    int (*p)(int, int);
    int a,b,c;
   
    p=max;
   
    scanf("%d %d",&a, &b);
   
    c = (*p)(a,b);
   
    printf("a=%d,b=%d,max=%d\n",a,b,c);
return 0; //add
}

int max(int x,int y)
{
    int z;
   
    if( x > y )
    {
        z = x;
    }
    else
    {
        z = y;
    }
   
    return z;
}

---------------------------------------------------
修改了一些地方,编译环境,gcc filename.c -Wall  成功, 微软环境可能要改scanf
2020-02-17 15:03
福建刘德华
Rank: 1
等 级:新手上路
帖 子:17
专家分:0
注 册:2020-2-13
得分:0 
回复 4楼 hellobird
谢谢
2020-02-17 16:50
福建刘德华
Rank: 1
等 级:新手上路
帖 子:17
专家分:0
注 册:2020-2-13
得分:0 
回复 3楼 xianfajushi
明白了
2020-02-17 16:50



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-499257-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 1.005737 second(s), 7 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved