1: // Filename: PTR_EX5.CPP
2: // Purpose: Illustrates array/pointer parameters
4: #include <iostream>
5: using namespace std;
7: #include "PAUSE.H"
9: void MakeZero1(/* inout */ double a[], /* in */ int size)
10: // Pre: "size" has been initialized.
11: // Post: All "size" values in a have been initialized to 0.0.
12: {
13: for (int i = 0; i < size; i++) a[i] = 0.0;
14: }
16: void MakeZero2(/* inout */ double* a, /* in */ int size)
17: // Pre: "size" has been initialized.
18: // Post: All "size" values in a have been initialized to 0.0.
19: {
20: for (int i = 0; i < size; i++) a[i] = 0.0;
21: }
23: void PrintArray(/* in */ double* a, /* in */ int size)
24: // Pre: "a" and "size" have both been initialized.
25: // Post: The values of "a" have been displayed, separated by one space.
26: {
27: for (int i = 0; i < size; i++) cout << a[i] << " ";
28: }
31: int main()
32: {
33: cout << "\nThis program illustrates pointers as function parameters."
34: << "\nStudy the source code and the output simultaneously.\n\n";
36: int i;
37: double values[10];
39: for (i = 0; i < 10; i++)
40: values[i] = i*i;
41: cout << endl;
42: PrintArray(values, 10); cout << endl;
43: Pause(0);
45: MakeZero1(values, 10);
46: PrintArray(values, 10); cout << endl;
47: Pause(0);
49: for (i = 0; i < 10; i++)
50: values[i] = 2.5*i;
51: cout << endl;
52: PrintArray(values, 10); cout << endl;
53: Pause(0);
55: MakeZero2(values, 10);
56: PrintArray(values, 10); cout << endl;
57: Pause(0);
59: return 0;
60: }