Easy Tutorial
❮ Cpp Comma Operator Cpp Multi Dimensional Arrays ❯

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 an unsigned long pointer to a function and change its value within the function:

Example

#include <iostream>
#include <ctime>

using namespace std;

// It is a good habit to declare the function first and 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 number of seconds
   *par = time( NULL );
   return;
}

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

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 array with 5 elements
   int balance[5] = {1000, 2, 3, 17, 50};
   double avg;

   // Pass a pointer to the array as a parameter
   avg = getAverage( balance, 5 ) ;

   // Output the returned 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 result:

Average value is: 214.4

C++ Pointers

❮ Cpp Comma Operator Cpp Multi Dimensional Arrays ❯