Pointers are used to point to address of some variable. Pointers can be de-referenced to get the value of the data that the pointer points to. In addition to data, pointers can also be used to store the address of a function. Not only this, it can also be de-referenced to execute the function.
Lets understand with the following example:
#include <stdio.h>
int add(int x, int y){
return x+y;
}
int main(){
int c;
int (*p)(int,int);
p = add; // p = &add can also be used to assign the address of add function to p.
c= p(2,3); // c= (*p)(2,3) can also be used to de-reference the pointer p and run the function.
printf("%d\n",c);
}
The add function adds two integers x and y and returns the sum of two integers.
In function main, the function pointer is defined using the syntax : int (*p) (int, int).
This means that, the pointer variable p is the function pointer for a function with two integers as the input variable and an integer as the return value.
The syntax, p= add ; or p= &add; is used to store the address of add function in the pointer variable p.
The syntax, c = p(2,3) or c= *p(2,3) can be used to call the function add by de-referencing the pointer p and the return value is stored in c as c is an int variable.
Lets understand with the following example:
#include <stdio.h>
int add(int x, int y){
return x+y;
}
int main(){
int c;
int (*p)(int,int);
p = add; // p = &add can also be used to assign the address of add function to p.
c= p(2,3); // c= (*p)(2,3) can also be used to de-reference the pointer p and run the function.
printf("%d\n",c);
}
The add function adds two integers x and y and returns the sum of two integers.
In function main, the function pointer is defined using the syntax : int (*p) (int, int).
This means that, the pointer variable p is the function pointer for a function with two integers as the input variable and an integer as the return value.
The syntax, p= add ; or p= &add; is used to store the address of add function in the pointer variable p.
The syntax, c = p(2,3) or c= *p(2,3) can be used to call the function add by de-referencing the pointer p and the return value is stored in c as c is an int variable.
No comments:
Post a Comment