1: // Filename: PTRPARAM.CPP
2: // Purpose: To test your knowledge of pointers as parameters.
4: #include <iostream>
5: #include <iomanip>
6: using namespace std;
9: void DoIt1(int n1, int& n2)
10: {
11: n1 = n1 * 2;
12: n2 = n2 + 3;
13: cout << setw(3) << n1 << " " << setw(3) << n2 << endl;
14: }
17: void DoIt2(int* p1, int* p2)
18: {
19: *p1 = *p1 * *p1;
20: *p2 = -2 * *p2;
21: cout << setw(3) << *p1 << " " << setw(3) << *p2 << endl;
22: }
25: int main()
26: {
27: cout << "\nThis program illustrates pointer (and other) parameters."
28: << "\nStudy the source code and the output simultaneously.\n";
30: int n1 = 2;
31: int n2 = 3;
33: int* p1;
34: int* p2;
35: p1 = new int;
36: p2 = new int;
37: *p1 = 4;
38: *p2 = 5;
40: cout << endl;
41: cout << setw(3) << n1 << " " << setw(3) << n2 << endl;
42: DoIt1(n1, n2);
43: cout << setw(3) << n1 << " " << setw(3) << n2 << endl << endl;
45: cout << setw(3) << *p1 << " " << setw(3) << *p2 << endl;
46: DoIt2(p1, p2);
47: cout << setw(3) << *p1 << " " << setw(3) << *p2 << endl << endl;
49: cout << setw(3) << *p1 << " " << setw(3) << *p2 << endl;
50: DoIt1(*p1, *p2);
51: cout << setw(3) << *p1 << " " << setw(3) << *p2 << endl << endl;
53: cout << setw(3) << n1 << " " << setw(3) << n2 << endl;
54: DoIt2(&n1, &n2);
55: cout << setw(3) << n1 << " " << setw(3) << n2 << endl;
57: return 0;
58: }