< Previous | Contents | Next >
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
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;
}
}