Please send questions to st10@humboldt.edu .
#include <iostream>
using namespace std;

/*-----------------------------------------------------
 Contract: main : void -> int
 Purpose: play with pointers!!

 Examples: not really applicable --- run and study/consider
           results.

 by: Sharon M. Tuttle
 last modified: 11-10-03
--------------------------------------------------------*/

int main()
{
    float *numPtr, *valPtr;
    float myFloat;

    /*--- BASELINE -----------------------------------*/

    myFloat = 6.67;
    cout << "POINT 1: myFloat is: " << myFloat << endl;

    /*--- first pointer example ----------------------*/

    numPtr = &myFloat;

    /* what happens when I change the value pointed to */
    /*   by a pointer?                                 */
    *numPtr = 22;

    cout << "POINT 2: myFloat is: " << myFloat << endl;

    /*--- two pointers pointing to the same address ----*/

    valPtr = numPtr;

    *numPtr = 33.3;

    cout << "POINT 3: myFloat is: " << myFloat << endl;
    cout << "     and *valPtr is: " << *valPtr << endl;
    cout << "     and *numPtr is: " << *numPtr << endl;

    /*--- use of new ---------------------------------*/

    valPtr = new float;

    *valPtr = 0.44;

    *numPtr = *valPtr;
    *valPtr = 0.88;

    cout << "POINT 4: *valPtr is: " << *valPtr << endl;
    cout << "     and *numPtr is: " << *numPtr << endl;

    // just to play it safe...? (and demo delete?)
    delete valPtr;  // deallocate the memory that
                    //    valPtr points to
    valPtr = NULL;

    return 0;
}