Address of a function in C or C++



In C and C++, every function is stored in the computer's memory, and each function has a memory address just like all other variables. In this article, our task is to see how we can access the address of a function and display it in both C and C++.

Accessing Address of a Function

To access the address of a function, we simply use its name without parentheses. When we print a function name with parentheses like hello(), we're calling the function. But if we print just hello, it gives us the memory address where the function is stored.

C++ Program to Display the Address of a Function

Following is a C++ program where we define a function called my_function. We call it inside the main() function and then display the memory addresses of both my_function and the main() function.

#include <iostream>
using namespace std;

// defining a simple function
void my_function() {
   cout << "Hello TutorialsPoint Learner!" << endl;
}

int main() {
   // calling the function
   cout << "Calling my_function: ";
   my_function();

   // printing the function's address
   cout << "The address of my_function is: " << (void*)my_function << endl;

   // printing the address of main function
   cout << "The address of main() function is: " << (void*)main << endl;
   return 0;
}

The output of the above program is shown below. It displays the memory addresses of both the defined function and the main function.

Calling my_function: Hello TutorialsPoint Learner!
The address of my_function is: 0x559cc9037189
The address of main() function is: 0x559cc90371bf

C Program to display the Address of a Function

Here's a C program where we do the same as in the C++ example. We first define a function and call it, then display the memory addresses of both my_function and main() function.

#include <stdio.h>

// defining a simple function
void my_function() {
    printf("Hello World\n");
}

int main() {
    // calling the function
    printf("Calling my_function: ");
    my_function();

    // printing the address of my_function
    printf("The address of my_function is: %p\n", (void*)my_function);

    // printing the address of main
    printf("The address of main is: %p\n", (void*)main);

    return 0;
}

Below is the output of the above program, which displays the memory addresses of both the defined function and the main function.

Calling my_function: Hello World
The address of my_function is: 0x55e7afc43169
The address of main is: 0x55e7afc43183

Conclusion

To conclude, we saw that every function in C and C++ has a memory address, just like variables. We can access this address by writing the function name without parentheses and display it using a simple program.

Akansha Kumari
Akansha Kumari

Hi, I am Akansha, a Technical Content Engineer with a passion for simplifying complex tech concepts.

Updated on: 2025-07-14T17:24:15+05:30

3K+ Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements