Article Categories
- All Categories
-
Data Structure
-
Networking
-
RDBMS
-
Operating System
-
Java
-
MS Excel
-
iOS
-
HTML
-
CSS
-
Android
-
Python
-
C Programming
-
C++
-
C#
-
MongoDB
-
MySQL
-
Javascript
-
PHP
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.
