c pointers to functions

c pointers to functions

In pointers the way we can reference variables of type int, char and float etc using addresses, c pointers can also point to the function since c function have addresses.

If we know the function address, we can point to it using pointers and also the another way to invoke that function.

func_ptr is a pointer to a function which returns an function return type.

pointer to function syntax,

 (*func_ptr)(arg1,...);

Why need pointer to a function ?

Writing memory resident programs.

viruses program and vaccines to remove the virsuses.

COM / DCOM components development.

Connect events to function calls(VC++).

C program to get the address of a function

This c program is used to get the address of show function and displayed it.

To obtain the address of a function, we need to use the name of the function.

#include                                                               
                                                                                
void main()                                                                     
{                                                                               
  void show();                                                                  
  printf("\nMain method!");                                                     
  printf("\nAddress of show function: %u", show);                               
  show();                                                                       
}                                                                               
                                                                                
void show()                                                                     
{                                                                               
  printf("\nShow method!");                                                     
} 

Output:

$ cc pointer-to-function.c
$ ./a.out 

Main method!
Address of show function: 4195674
Show method!

C program to invoke function using pointer

#include                                                              
                                                                                
void main()                                                                     
{                                                                               
  void show();                                                                  
  void (*func_ptr)();                                                           
  printf("\nMain method!"); 
  // assign address of function 'show' to function pointer                                                    
  func_ptr = show;                                                              
  printf("\nAddress of show function: %u", func_ptr);                           
  // invokes show function                                                      
  (*func_ptr)();                                                                
}                                                                               
                                                                                
void show()                                                                     
{                                                                               
  printf("\nShow method!");                                                     
}   

Output:

$ cc pointer-to-function.c
$ ./a.out 

Main method!
Address of show function: 4195674
Show method!

C program to invoke function and gets return value using pointer

This c program invokes the show funation and returns integer value and also shows how to invoke the show function using pointer.

func_ptr is a pointer to invoke show function which returns an int data type.

#include                                                               
                                                                                
void main()                                                                     
{                                                                               
  int output;                                                                   
  int show();                                                                   
  int (*func_ptr)();                                                            
  printf("\nMain method!");                                                     
  func_ptr = show;                                                              
  printf("\nAddress of show function: %u", func_ptr);                           
  // invokes show function                                                      
  output = (*func_ptr)();                                                       
  printf("\nReturn value from show function: %d", output);                      
}                                                                               
                                                                                
int show()                                                                      
{                                                                               
  printf("\nShow method!");                                                     
  return 10;                                                                    
}    

Output:

$ cc pointer-to-function.c
$ ./a.out 

Main method!
Address of show function: 4195712
Show method!
Return value from show function: 10

C program to invoke function with arguments and gets return value using pointer

This c program invokes the show funation with int argument and returns integer value and also shows how to invoke the show function using pointer.

func_ptr is a pointer to invoke show function with integer argument which returns an int data type.

#include                                                               
                                                                                
void main()                                                                     
{                                                                               
  int output;                                                                   
  int show(int);                                                                
  int (*func_ptr)(int);                                                         
  printf("\nMain method!");                                                     
  func_ptr = show;                                                              
  printf("\nAddress of show function: %u", func_ptr);                           
  // invokes show function                                                      
  output = (*func_ptr)(20);                                                     
  printf("\nReturn value from show function: %d", output);                      
}                                                                               
                                                                                
int show(int val)                                                               
{                                                                               
  printf("\nShow method!");                                                     
  return val;                                                                   
}  

Output:

$ cc pointer-to-function.c
$ ./a.out 

Main method!
Address of show function: 4195712
Show method!
Return value from show function: 20

C Program Examples

C program to cmpute matrix addition using two dimensional array

C program to cmpute matrix subtraction using two dimensional array

C program to cmpute matrix multiplication using two dimensional array

C program to compute different order of matrix multiplication

C program to generate identity matrix for required rows and columns

C program to validate whether matrix is identity matrix or not

C program to validate whether matrix is sparse matrix or not

C program to validate whether matrix is dense matrix or not

C program to generate string as matrix diagonal characters using two dimesional array

C Program to find number of weeks, months and years from days

C Program To Implement Linked List and Operations

C Program To Implement Sorted Linked List and Operations

C Program to Reverse the Linked List

C Program to Stack and Operations using Linked List

C Program to Queue and Operations using Linked List

C Program to calculate multiplication of two numbers using pointers

C Program To Calculate Median

C Program To Calculate Standard Deviation

C Program For Fahrenheit To Celsius Conversion

C Program To Calculate Average

C Program For Quadratic Equations

C Program To Check Character Type

C Program To Find Largest Of Three Values

C Program To Find Max Value In Array

C Program to Find Min Value In Array

C Program to Print Multiplication Table

C Program for Frequency Counting

C Program to read a line of text

C Program To Find ASCII Value For Any Character

C Program To Find A Character Is Number, Alphabet, Operator, or Special Character

C Program To Find Reverse Case For Any Alphhabet using ctype functions

C Program To Find Number Of Vowels In Input String

C Program Pointers Example Code

C Program To Find Leap Year Or Not

C Program To Swap Two Integers Using Call By Reference

C Program To Swap Two Integers Without Using Third Variable

C Program To List Prime Numbers Upto Limit

C Program To List Composite Numbers Upto Limit

C Program To Calculate Compound Interest

C Program To Calculate Depreciation Amount After of Before Few Years

C Program To Calculate Profit Percentage

C Program To Calculate Loss Percentage

C Program To Find String Is Polindrome Or Not

C Program To Find Factorial of a Number

C Program To Check Number is a Polindrome or Not

C Program To Generate Random Integers

C Program To Generate Random Float Numbers

C Program to find Square Root of a Number

C Program to find Area of a Rectangle

C Program to find Perimeter of a Rectangle

C Program to find Area of a Square

C Program to find Area of a Triangle

C Program to find Area of a Parallelogram

C Program to find Area of a Rhombus

C Program to find Area of a Trapezium

C Program to find Area of a Circle and Semi-circle

C Program to find Circumference of a Circle and Semi-circle

C Program to find length of an arc

C Program to find Area of a Sector

C Program to find string length for list of strings

C Program to find the character at index in a string

C Program to compare characters

C Program to find eligible to vote or not

C Program to get system current date and time on linux

C Program to get positive number

C Program to implement calculator

C Program to implement banking system

C Program to find sum of number

C Program for array traversal using pointers

C Program for array traversal in reverse order using pointers

C Program to find particular element occurrences count in array

C Program to find even elements occurrences count in array

C Program to find odd elements occurrences count in array

C program to find week day in word from week day in number using two dimentsional array

C program to find month in word from month in number using pointers

C program to compute PMT for a loan

C program to compute EMI and round up using floor

C program to compute EMI and round up using ceil

C program to compute the EMI table with Interest, Principal and Balance

C program to get multiple line of string

C program to find nth element in array using pointers

C program to compute the volume of a cube

C program to compute the volume of a box

C program to compute the volume of a sphere

C program to compute the volume of a triangular prism

C program to compute the volume of a cylinder

C Program to Compute Perimeter of Square

C Program to compute the perimeter of triangle

C Program to compute the discount rate

C Program to compute the sales tax

C program to add, delete, search a record or show all using binary file

C program to add, delete, search a record or show all using text file

Privacy Policy  |  Copyrightcopyright symbol2020 - All Rights Reserved.  |  Contact us   |  Report website issues in Github   |  Facebook page   |  Google+ page

Email Facebook Google LinkedIn Twitter
^