/*! \file q2.c

 *  \author EISTI
 *  \version 0.1
 *
 *  \brief affiche infos sur les pointeurs
 *
 */

#include <stdio.h>
#include <stdlib.h>

/*! \fn int main (int argc, char** argv)
 *  \author EISTI
 *  \version 0.1
 *  \date Fri Jan 15 15:29:37 2010
 *
 *  \brief Fonction principale
 *
 *
 * \param argc : Nombre d'argument
 * \param argv : Tableau des arguments
 * \return 0 : le programme doit se terminer normalement
 *
 * \remarks 
 */

int main (int argc, char** argv) {
	int a,b,c,*p1,*p2;

	a=1; 
	b=3;
	c=-2;
	printf("1 : a=%d, b=%d, c=%d, p1=%p, *p1=%d, p2=%p, *p2=%d \n",a,b,c,p1,*p1,p2,*p2);

	p1=&a;
	p2=&c;
	printf("2 : a=%d, b=%d, c=%d, p1=%p, *p1=%d, p2=%p, *p2=%d \n",a,b,c,p1,*p1,p2,*p2);

	*p1=(*p2)++;
	printf("3 : a=%d, b=%d, c=%d, p1=%p, *p1=%d, p2=%p, *p2=%d \n",a,b,c,p1,*p1,p2,*p2);

	p1=p2;
	printf("4 : a=%d, b=%d, c=%d, p1=%p, *p1=%d, p2=%p, *p2=%d \n",a,b,c,p1,*p1,p2,*p2);

	++*p1;
	printf("5 : a=%d, b=%d, c=%d, p1=%p, *p1=%d, p2=%p, *p2=%d \n",a,b,c,p1,*p1,p2,*p2);

	p2=&b;
	printf("6 : a=%d, b=%d, c=%d, p1=%p, *p1=%d, p2=%p, *p2=%d \n",a,b,c,p1,*p1,p2,*p2);

	*p1 -= *p2;
	printf("7 : a=%d, b=%d, c=%d, p1=%p, *p1=%d, p2=%p, *p2=%d \n",a,b,c,p1,*p1,p2,*p2);

	a = ++*p2 * *p1;
	printf("8 : a=%d, b=%d, c=%d, p1=%p, *p1=%d, p2=%p, *p2=%d \n",a,b,c,p1,*p1,p2,*p2);

	a *= *p2;
	printf("9 : a=%d, b=%d, c=%d, p1=%p, *p1=%d, p2=%p, *p2=%d \n",a,b,c,p1,*p1,p2,*p2);
	//Fin du programme, Il se termine normalement, et donc retourne 0
	return (EXIT_SUCCESS);
} 


