关于C语言指针变量,指向函数问题,请看一下下图所示的代码为什么编译不了,谢谢啦!

如题所述

第1个回答  推荐于2016-06-29
#include<stdio.h>
int max(int,int);

void main()
{
int(*p)(int,int);
int a,b,c;
p=max;
scanf("%d,%d",&a,&b);
c=(*p)(a,b);
printf("%d",c);
printf("\n");
}
int max(int x,int y)
{
int z;
z=(x>y)?x:y;
return z;
}追问

为什么p=max和int a,b,c换位置后就能编译了呢?什么原理呀?

追答

定义局部变量一定要写在函数的最前面.这是C的规则.
C++只要在使用前定义就可以了.

本回答被提问者采纳
第2个回答  2015-02-28
int max(int,int);放在#include下面,不要放在main()函数里,还有它下面的那一句,那俩是函数声明,是要放在所有函数之前的本回答被网友采纳
第3个回答  2015-02-28
中英文的符合注意改下追问

都是英文状态输入的………

追答

你把代码贴上来!我改好发你!你的"貌似就是中文的

追问

#include
void main()
{int max(int,int);
int(*p)(int,int);
p=max;
int a,b,c;
scanf("%d,%d",&a,&b);
c=(*p)(a,b);
printf("%d",c);
printf("\n");
}
int max(int,int)
{
int z;
z=(x>y)?x:y;
return z;
}

追答

#include
void main()
{int max(int,int);
int(*p)(int,int);
p=max;
int a,b,c;
scanf("%d,%d",&a,&b);
c=(*p)(a,b);
printf("%d",c);
printf("\n");
}
int max(int x,int y)
{
int z;
z=(x>y)?x:y;
return z;
}

第4个回答  2015-02-28
错误代码是什么·~
学会看错误~~
第5个回答  2015-02-28
c=p(a, b);
相似回答