#include void make42(int* ip) // value parameter that is a pointer { *ip = 42; } void getNum(int n[], size_t sz) // array parameter { for(int i = 0; i < sz; i++) { cin >> n[i]; } } void allocDoubles(double*& p, size_t& n) // Ref. parameter that is a pointer { cout << "\nHow many doubles should I allocate? "; cin >> n; p = new double[n]; } void main() { int *p1, *p2; p1 = new int; p2 = new int; *p1 = 10; *p2 = 20; *p1 = *p2; cout << *p1; p1 = p2; *p1 = 30; cout << *p1 << *p2; make42(p2); cout << *p1 << *p2; delete p1; delete p2; size_t arrySize; int* numbers; cout << "\nHow many numbers do you have? "; cin >> arrySize; numbers = new int[arrySize]; //dynamic array, determined when it is running getNum(numbers, arrySize); cout << numbers[0]; cout << numbers[arrySize-1]; delete[] numbers; double *dnumbers; allocDoubles(dnumbers, arrySize); dnumbers[0] = 0; cout << dnumbers[0]; }