1: //pointers3.cpp 3: #include <iostream> 4: #include <string> 5: using namespace std; 7: int main() 8: { 9: cout << "\nThis program illustrates the dereferencing of " 10: "pointer variables."; 11: cout << "\nPress Enter to continue ... "; cin.ignore(80, '\n'); 13: //Dereferencing a pointer variable to obtain the value pointed at 14: //Here the pointer is pointing at static storage 15: int i = 10; 16: i = i + 1; 17: cout << "\nCurrent value of i: " << i << endl; 18: cout << "1Press Enter to continue ... "; cin.ignore(80, '\n'); 20: int* p_i = &i; 21: *p_i = *p_i + 1; 22: cout << "\nCurrent value of i: " << *p_i << endl; 23: cout << "2Press Enter to continue ... "; cin.ignore(80, '\n'); 25: //Here the pointer is pointing at dynamic storage 26: int* p_int = new int; 27: *p_int = 17; 28: *p_int = *p_int + 5; 29: cout << "\nValue now pointed at by p_int: " << *p_int; 30: cout << "\n3Press Enter to continue ... "; cin.ignore(80, '\n'); 32: struct ClubMember 33: { 34: string name; 35: int age; 36: double balance; 37: }; 39: //Dereferencing a pointer variable pointing at a structured type 40: ClubMember* p_cm = new ClubMember; 41: p_cm->name = "John"; 42: p_cm->age = 32; 43: p_cm->balance = 100.00; 44: cout << "\n" << (*p_cm).name << ", who is " << (*p_cm).age 45: << " years old, owes $" << (*p_cm).balance << "."; 46: cout << "\n4Press Enter to continue ... "; cin.ignore(80, '\n'); 48: //The alternative to the previous line is ... 49: p_cm->name = "Alice"; 50: p_cm->age = 27; 51: p_cm->balance = 55.95; 52: cout << "\n" << p_cm->name << ", who is " << p_cm->age 53: << " years old, owes $" << p_cm->balance << "."; 54: cout << "\n5Press Enter to continue ... "; cin.ignore(80, '\n'); 55: }