How to add two numbers using function pointer ?

January 8, 2012 No Comments » Hits : 95






How to add two numbers using function pointer ?

#include<stdio.h>

 int sum (int n1,int n2);

 int main()
 {
 int num1 = 10;
 int num2 = 20;
 int result;

 int *(*ptr)(int,int);
 ptr = &sum;
 result = (*ptr)(num1,num2);

 printf("Addition : %d",result);

 return(0);
 }

int sum (int n1,int n2)
{
return(n1 + n2);
}

Explanation :

  • Write whole program using normal function call i.e sum(num1,num2);
  • After you write whole code, just erase line in which we have called function and replace that line with following line -

Step 1 : Declaring Pointer Variable

int *(*ptr)(int,int);

means -

Declare pointer variable which is capable of storing
address of function which have integer as return type
and which takes 2 arguments.

Step 2 : Initializing function Pointer

ptr = &sum;
  • Store address of function in Function Pointer

Step 3 : Calling Function

result = (*ptr)(num1,num2);

It will call function sum(num1,num2);
above statement will be elaborated as -

result = (*ptr)(num1,num2);
result = (*&sum)(num1,num2);
result = (*&sum)(num1,num2);
result = (sum)(num1,num2);
result = sum(num1,num2);