#include <iostream>
using namespace std;

int main() {
  int i(0);
  const int *p = &i;
  const int &r = i; // q.3

  cout << "i=" << i << endl;
  cout << "*p=" << *p << endl;
  cout << "r=" << r << endl; // q.3

  i = 100;

  cout << "i=" << i << endl;
  cout << "*p=" << *p << endl;
  cout << "r=" << r << endl; // q.3

  return 0;
}
/*
 * q.1 : pour l'affichage compilez ce programme et exécutez-le!
 * q.2/3 : il y a bien une différence, mais qui n'est pas visible ici.
 *       La différence est que via la référence i, la case mémoire est
 *       modifiable, mais via le pointeur p ou la référence r elle nee l'est
 *       pas. Ce qui peut être vérifié simplement par *p = 200; ou r = 200;
 */