C++ Passing Pointers to Functions

C++ Pointers

C++ allows you to pass pointers to functions by simply declaring the function parameters as pointer types.

In the following example, we pass a pointer to an unsigned long to the function, and change this value inside the function:

Example

#include <iostream> #include <ctime> using namespace std; // When writing functions, it is a good habit to declare the function first, then define it void getSeconds(unsigned long *par); int main () { unsigned long sec; getSeconds( &sec ); // Output the actual value cout << "Number of seconds :" << sec << endl; return 0; } void getSeconds(unsigned long *par) { // Get the current seconds *par = time( NULL ); return; }

When the above code is compiled and executed, it produces the following results:

Number of seconds :1294450468

Functions that can accept pointers as parameters can also accept arrays as parameters, as shown below:

Example

#include <iostream> using namespace std; // Function declaration double getAverage(int *arr, int size); int main () { // An integer array with 5 elements int balance[5] = {1000, 2, 3, 17, 50}; double avg; // Pass a pointer to an array as an argument avg = getAverage( balance, 5 ) ; // Output the return value cout << "Average value is: " << avg << endl; return 0; } double getAverage(int *arr, int size) { int i, sum = 0; double avg; for (i = 0; i < size; ++i) { sum += arr[i]; } avg = double(sum) / size; return avg; }

When the above code is compiled and executed, it produces the following results:

Average value is: 214.4

C++ Pointers

other extensions