c语言函数指针为什么可以调用main函数,同除main函数之外的调用有什么不同之处

include//这是调用代码 调用使用函数指针调用main函数 效果是一个递归

int (*f)(void);

void put_s(char* s);

int main(void)
{

char a[8];  
f = main;//将main函数地址赋值给F指针函数
put_s(a);
puts(a);
putchar(f());
getchar();

return 0;

}

void put_s(char* s)
{
gets(s);

return;

}

就你的程序来说,是为了使用函数指针而使用函数指针。C语言允许你通过函数指针,调用一个函数,只要参数返回值一致就可以。不一定main函数。