In the following program the function pointer is defined to point to a function which accepts no argument and returns int yet the function pointer works here. Why?
#include<stdio.h>
int mul(int*,int*);
int main()
{   int a=10,b=20;
    int(*p)();
    p=&mul;
    printf("%d ", (*p)(&a,&b));
        return 0;
}
int mul(int*a,int*b)
{   
    return (*a * *b);
}
 
     
    