1: //pointer_parameters.cpp 2: //This program illustrates the critical difference between 3: //passing a "regular" static variable to a function and 4: //passing a pointer variable. The "big takeaway" from this 5: //example is realizing that although pass by value (the 6: //default passing mechanism in C++) applies in both cases, 7: //the overall effect is quite different, because (and you 8: //should remember this phrase) "a copy of an address is 9: //still an address". 11: #include <iostream> 12: using namespace std; 14: void DoIt 15: ( 16: int i, //in 17: int* ip //in 18: ) 19: { 20: i *= i; 21: *ip *= *ip; 22: } 24: int main() 25: { 26: int i = 6; 27: int* ip; 28: ip = new int; 29: *ip = 8; 31: cout << "\nBefore the function call:\n"; 32: cout << "i = " << i << "\t*ip = " << *ip << endl; 33: cout << "\nPress Enter to continue ... "; cin.ignore(80, '\n'); 34: DoIt(i, ip); 35: cout << "\nAfter the function call:\n"; 36: cout << "i = " << i << "\t*ip = " << *ip << endl; 37: cout << "\nPress Enter to continue ... "; cin.ignore(80, '\n'); 38: }