C语言指向函数的指针

来源:百度知道 编辑:UC知道 时间:2024/06/08 00:07:40
如下:
#include<stdio.h>
int main()
{
int a,b,c;
int e(int ,int );
int (*d)();
int d=e;

printf("\n请输入第一个数:");
scanf("%d",&a);
printf("\n请输入第二个数:");
scanf("%d",&b);
c=(*d)(a,b);
printf("\n两数的和为:%d",c);
}
int e(int, int )
{
return a+b;
}

编译出错,一大把的~~~
在第7行 d=e时出错,按道理d定义的指向函数的指针,然后把函数e的地址给d,应该是对的啊,
还有第十三行调用函数时也出错
编译错误信息如下:
D:\c++程序\gsfsd\hk.cpp(7) : error C2373: 'd' : redefinition; different type modifiers
D:\c++程序\gsfsd\hk.cpp(6) : see declaration of 'd'
D:\c++程序\gsfsd\hk.cpp(7) : error C2440: 'initializing' : cannot convert from 'int (__cdecl *)(int,int)' to 'int'
This conversion requires a reinterpret_cast, a C-style cast or function-style cast
D:\c++程序\gsfsd\hk.cp

int d=e;
这个就不对,改成d=e
还有,int e(int, int )
{
return a+b;
}

这个函数改成int e(int a, int b)
{
return a+b;
}

int e(int ,int );是个问题
c=(*d)(a,b);是个问题
c=(*d)(a,b);是个问题

int e(int ,int );什么意思 你这是要做什么运算

main前什么都不加