Q3 - add numbers using function pointer
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 = ∑ 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 = ∑
- 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);