Back to notes -- Keyboard shortcut: 'u'  previous -- Keyboard shortcut: 'p'  next -- Keyboard shortcut: 'n'  Slide program -- Keyboard shortcut: 't'    No operator operates on a reference as such.Lecture 2 - slide 17 : 42
Program 2
// Example similar to the function g on page 98 in 'The C++ Programming Language'.

#include <iostream>
#include <string>

using namespace std;

void g(){
  int ii = 0;
  int& rr = ii;              // rr is a reference to ii - an alias to ii
  rr++;                      // ii is incremented.
                             // The reference is NOT incremented itself.
  cout << ii << endl;        // 1
  cout << rr << endl;        // 1

  // NOW WE DO SIMILAR THINGS ON POINTERS:
  int* pp = &rr;             // pp is really the address of ii (via rr) - a pointer to ii.
                             // NOT a pointer to a reference!
  (*pp)++;                   // ii is incremented again, 
  pp++;                      // The pointer as such is incremented - pointer arithmetic.
                             // Not good...
  cout << ii << endl;        // 2
  cout << (*pp) << endl;     // 2673944
  cout << (*(pp-1)) << endl; // Still 2
}

int main(){
  g();
}