EmSAT Achieve Exam  >  EmSAT Achieve Notes  >  C++ for EmSAT Achieve  >  Function Pointer in C++

Function Pointer in C++ | C++ for EmSAT Achieve PDF Download

Introduction

Function pointers are a powerful feature of C++ programming language. They allow us to store the address of a function in a pointer variable and then use that pointer to call the function. This article aims to provide an easy-to-understand explanation of function pointers in C++.

What is a Function Pointer?

A function pointer is a variable that stores the address of a function. In C++, functions are first-class citizens and can be treated like any other data type. Therefore, a function pointer is just like a regular pointer, but instead of pointing to an object, it points to a function.

Declaring a Function Pointer

To declare a function pointer, we use the following syntax:

return_type (*pointer_name)(argument_type1, argument_type2, ..., argument_typeN);

Here is an example of declaring a function pointer:

int (*p)(int, int);

This declares a function pointer named 'p' that can point to a function that takes two 'int' arguments and returns an 'int'.

Assigning a Function to a Function Pointer

Once we have declared a function pointer, we can assign a function to it. Here is an example of assigning a function to a function pointer:

int add(int a, int b) {

    return a + b;

}


int (*p)(int, int) = add;

In this example, we have assigned the 'add' function to the 'p' pointer. Now we can call the 'add' function using the 'p' pointer like this:

int result = p(3, 4);

This will call the 'add' function with the arguments '3' and '4', and store the 'result' in the result variable.

Using Function Pointers

We can use function pointers in many ways. Here are some examples:
1. Passing Function Pointers as Arguments:
We can pass a function pointer as an argument to another function. Here is an example:

void print_result(int (*operation)(int, int), int a, int b) {

    int result = operation(a, b);

    std::cout << "Result: " << result << std::endl;

}


int add(int a, int b) {

    return a + b;

}


int multiply(int a, int b) {

    return a * b;

}


int main() {

    int (*p)(int, int) = add;

    print_result(p, 3, 4);


    p = multiply;

    print_result(p, 3, 4);


    return 0;

}

In this example, we have defined a function 'print_result' that takes a function pointer as its first argument. We then pass the 'add' function and the 'multiply' function as arguments to 'print_result' using the 'p' pointer.

2. Storing Function Pointers in Arrays:
We can store function pointers in arrays. Here is an example:

int add(int a, int b) {

    return a + b;

}


int multiply(int a, int b) {

    return a * b;

}


int main() {

    int (*operations[])(int, int) = {add, multiply};

    int result = operations[0](3, 4);

    std::cout << "Result: " << result << std::endl;


    result = operations[1](3, 4);

    std::cout << "Result: " << result << std::endl;


    return 0;

}

In this example, we have defined an array 'operations' that stores two function pointers. We then use the function pointers to call the 'add' function and the 'multiply' function.

Sample Problems

1. Write a program that uses a function pointer to find the maximum of two integers.

#include <iostream>


int max(int a, int b) {

    return a > b ? a : b;

}


int main() {

    int (*p)(int, int) = max;

    int result = p(3, 4);

    std::cout << "Result: " << result << std::endl;

    return 0;

}

Output

Result: 4

2. Write a program that uses a function pointer to calculate the sum of an array of integers.

#include <iostream>


int sum(int* arr, int size) {

    int result = 0;

    for (int i = 0; i < size; i++) {

        result += arr[i];

    }

    return result;

}


int main() {

    int arr[] = {1, 2, 3, 4, 5};

    int size = sizeof(arr) / sizeof(arr[0]);


    int (*p)(int*, int) = sum;

    int result = p(arr, size);

    std::cout << "Result: " << result << std::endl;

    return 0;

}

Output

Result: 15

Conclusion

Function pointers are a powerful feature of C++ that allows us to store the address of a function in a pointer variable and then use that pointer to call the function. We can use function pointers in many ways, such as passing them as arguments to other functions, storing them in arrays, and more. With these examples, you should be able to start using function pointers in your own programs.

The document Function Pointer in C++ | C++ for EmSAT Achieve is a part of the EmSAT Achieve Course C++ for EmSAT Achieve.
All you need of EmSAT Achieve at this link: EmSAT Achieve
70 videos|45 docs|15 tests

Top Courses for EmSAT Achieve

70 videos|45 docs|15 tests
Download as PDF
Explore Courses for EmSAT Achieve exam

Top Courses for EmSAT Achieve

Signup for Free!
Signup to see your scores go up within 7 days! Learn & Practice with 1000+ FREE Notes, Videos & Tests.
10M+ students study on EduRev
Related Searches

Important questions

,

video lectures

,

study material

,

Objective type Questions

,

ppt

,

pdf

,

Function Pointer in C++ | C++ for EmSAT Achieve

,

practice quizzes

,

Previous Year Questions with Solutions

,

past year papers

,

Semester Notes

,

Exam

,

shortcuts and tricks

,

Function Pointer in C++ | C++ for EmSAT Achieve

,

Free

,

Summary

,

mock tests for examination

,

Viva Questions

,

MCQs

,

Extra Questions

,

Function Pointer in C++ | C++ for EmSAT Achieve

,

Sample Paper

;