Pointer with function in C | Pointer to function in C

Pointer with function in C

We can use pointers with functions in following ways:

Function returning pointer

In C language, a function can even return a pointer like other data types.

The syntax for function returning a pointer is:

Data_type *fun_name(Arguments);

Program to demonstrate a function returning pointer
#include<stdio.h>

int *sum(int a,int b)
{
int c=a+b;
return &c;
}

int main()
{
int *s;
s=sum(10,14);
printf(“\nSum=%d”,*s);

return(0);
}
Output
Sum=30
Description
In the above program, the function sum() is returning pointer as int *sum(int a,int b).

This function has been called within main() by taking a pointer variable s as int *s and assigning function calling statement to variable s as s=sum(10,14);



Pointer to function

Function also has an address in memory. This address is used when the function is called.

By storing this address in a function pointer, the function can also be called through this pointer.

Using function pointers, functions are passed as arguments to other functions. 

Program to demonstrate the use of pointer to function.
#include<stdio.h>

void fun(int val)
{
printf(“Value=%d”, val );
}

int main()
{
void (*fp)(int);

fp= &fun;

fp(10);

return(0);
}

Output
Value=10
Description
In the above program, the function fun(int val) is defined.

Function pointer has been declared as void (*fp)(int).

This pointer looks  similar to function definition i.e. void is the return type and int is within parenthesis specifying  argument of int type.

fp= &fun statement assigns the address of function fun in function ponter fp.

fp(10) calls function fun with argument value 2.





Spread the love
Lesson tags: function pointer in c, function returning pointer, pointer function argument, pointer variable of function
Back to: C Programming Language
Spread the love