int f(int x,int y) { return (y-x); } main() { int f(),(*g)()=f; printf("%d",(*g)(a,b)); }

为什么答案为1?int f(),(*g)()=f;是什么意思?
2025-06-27 07:56:01
推荐回答(1个)
回答1:

这里(*g)()=f

是定义一个函数指针g  并让他等于f

至于前面的int f()这个是写错了。 

正确的写法是

int f(int x,int y)
 { return (y-x); } 
 main() { 
 int f();//声明
 int (*g)()=f;//定义函数指针并初始化
  printf("%d",(*g)(a,b));//调用函数指针。 
   }

建议百度 C语言函数指针, 了解更多相关知识。