< Previous | Contents | Next >

Introducing the Array Passer

Program

The Array Passer program creates an array of high scores and then displays them, using the array name as a constant pointer. Next, the program passes the array name as a constant pointer to a function that increases the scores. Finally, the program passes the array name to a function as a constant pointer to a constant to display the new high scores. Figure 7.8 shows the results of the program.

You can download the code for this program from the Course Technology website (www.courseptr.com/downloads). The program is in the Chapter 7 folder; the filename is array_passer.cpp.

//Array Passer

//Demonstrates relationship between pointers and arrays #include <iostream>

using namespace std;

Understanding the Relationship between Pointers and Arrays 245


image

Figure 7.8

Using an array name as a pointer, the high scores are displayed, altered, and passed to functions.


void increase(int* const array, const int NUM_ELEMENTS);

void display(const int* const array, const int NUM_ELEMENTS);


int main()

{

cout << "Creating an array of high scores.\n\n"; const int NUM_SCORES = 3;

int highScores[NUM_SCORES] = {5000, 3500, 2700};


cout << "Displaying scores using array name as a constant pointer.\n"; cout << *highScores << endl;

cout << *(highScores + 1) << endl; cout << *(highScores + 2) << "\n\n";


cout << "Increasing scores by passing array as a constant pointer.\n\n"; increase(highScores, NUM_SCORES);


cout << "Displaying scores by passing array as a constant pointer to a constant.\n";

display(highScores, NUM_SCORES);


return 0;

}

246 Chapter 7 n Pointers: Tic-Tac-Toe 2.0


void increase(int* const array, const int NUM_ELEMENTS)

{

for (int i = 0; i < NUM_ELEMENTS; ++i)

{

array[i] += 500;

}

}


void display(const int* const array, const int NUM_ELEMENTS)

{

for (int i = 0; i < NUM_ELEMENTS; ++i)

{

cout << array[i] << endl;

}

}