what is a function pointer and how all to declare ,define
and implement it ???
Answers were Sorted based on User's Feedback
Answer / abdur rab
A pointer variable which holdes the address of a function
is a function pointer.
eg:
declaration of function pointer
void (*function_name)( int, int ) = NULL;
defining a function
void sum ( int x, int y )
{
printf ( "\nThe sum :%d", x + y );
}
void difference ( int x, int y )
{
printf ( "\nThe difference :%d", x - y );
}
using the function pointer in the place of function.
Remember to use the same prototype as declared.
int main ( int argc, char* argv [] )
{
function_name = sum; //short way of doing
function_name = ∑ // best practice
function_name ( 10, 20 ); //short way of doing
(*function_name) ( 10, 20 ); //best practice
function_name = &difference; //best practice
(*function_name) ( 10, 20 ); //best practice
return ( 0 );
}
output
======
The sum :30
The difference :-10
| Is This Answer Correct ? | 9 Yes | 1 No |
Answer / satish
Function pointer:
a function can be called not only by
its name,but also by other name which is called function
pointer.
void fact(int);
void main()
{
void(*p)(int);
printf("Enter n\n");
scanf("%d",&n);
p=fact;
fact(n);/*normal calling a function*/
(*p)(n); /*fn calling using function pointer*/
}
void (*p)(int n)
{
int ans=1;
while(n>0)
{
ans*=n--;
}
printf(" %d != %d",n,ans);
| Is This Answer Correct ? | 3 Yes | 4 No |
Answer / swagatika
function pointer is function returning a pointer
Example-
int *sum(int a, int b)
{
int x;
x= a+b;
return &x;
}
but the pointer to a function means a function interm of
pointer pointing to the another function.
int (*sum)(sum1);//pointer to a function
| Is This Answer Correct ? | 0 Yes | 1 No |
Answer / mathiyazhagan
A function can itself stored in a memory address.By calling
the address ,instead of function name,we can invoke
function.
Eg.:
#include <stdio.h>
void sum(int,int);
{
void (*fp)(); //() denotes pointer to a function
fp=sum(); // no need & .reason : same of array
fp(10,20); //invoking function
}
void sum(int x,int y)
{
printf("sum of x%d and %d is =%d",x,y,x+y);
}
| Is This Answer Correct ? | 1 Yes | 5 No |
#include main() { enum _tag{ left=10, right, front=100, back}; printf("left is %d, right is %d, front is %d, back is %d",left,right,front,back); }
What does sizeof int return?
Explain the ternary tree?
how can i get output like this? 1 2 3 4 5 6
What is #include stdlib h?
Why is c called c?
What are the keywords in c?
what is purpose of fflush(stdin) function
Write an algorithm for implementing insertion and deletion operations in a singly linked list using arrays ?
what is the use of ~ in c lang?????
Why does notstrcat(string, "!");Work?
What is the difference between union and structure in c?