|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
- //比较ab大小
- #include<stdio.h>
- int main()
- {
- //指针实现
- int max(int,int);
- int (*p)();//函数指针
- int a,b,c;
- p= max; //这句话出现报错,我的理解是p指针指向函数入口地址
- scanf("%d %d",&a,&b);
- c=(*p)(a,b); //这句话也出现报错,我的理解是将a,b送入指针指向的那个函数,将返回值给c
- printf("a=%d,b=%d,max=%d",a,b,c);
- }
- int max(int x,int y)
- {
- int z;
- if (x>y){
- z=x;
- }
- else{
- z=y;
- }
- return z;
- }
复制代码
报错如下:
F:\Temp\C学习例子\指向函数的指针.cpp In function 'int main()':
9 3 F:\Temp\C学习例子\指向函数的指针.cpp [Error] invalid conversion from 'int (*)(int, int)' to 'int (*)()' [-fpermissive]
11 12 F:\Temp\C学习例子\指向函数的指针.cpp [Error] too many arguments to function
本帖最后由 bin554385863 于 2019-10-24 23:13 编辑
int max(int,int);
int (*p)(int , int);//函数指针参数必须匹配.另外提想你一下,代码这个东西一步错步步错!
提示看不懂得话看下翻译
[Error] invalid conversion from 'int (*)(int, int)' to 'int (*)()' [-fpermissive]
百度翻译:
[错误]从'int(*)(int,int)'到'int(*)(0)'[-fppermissive]的转换无效
|
|