1、子函数在前:
#include<stdio.h>
int square(int num)
{
return num*num;
}
int main()
{
int num;
int (*fp)(int); //定义函数子帧
printf("请输入一个整数:");
scanf("%d",&num);
fp=square;
printf("%d * %d = %d\n",num,num,(*fp)(num));
return 0;
}//如果输入值为6,那么输出值为36。这个没问题。
2、子函数放在主函数之后
#include<stdio.h>
int main()
{
int num;
int (*fp)(int); //定义函数子帧
printf("请输入一个整数:");
scanf("%d",&num);
fp=square;
printf("%d * %d = %d\n",num,num,(*fp)(num));
return 0;
}
int square(int num)
{
return num*num;
} //程序报错。 另外就是,在第一个程序中 num不是局部吗?为什么可以直接用在子函数体中?谢谢!!!