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 |
what is the difference between c and java?
What is pointer to pointer in c with example?
explain what are pointers?
why use functions a) writing functions avoids rewriting the same code over and over b) using functions it becomes easier to write programs and keep track of what they are doing c) a & b d) none of the above
why java is called as a purely oops language.
Explain about block scope in c?
Explain how do you declare an array that will hold more than 64kb of data?
What are directives in c?
List the difference between a 'copy constructor' and a 'assignment operator' in C?
How do you override a defined macro?
what is the difference between i++ and ++i?
What is the use of the sizeof operator?