#include #include #define TAM 9 int endereco_reduzido(int *p, int n) { unsigned long aux; int digito, numero, i; aux = (unsigned long) p; numero = 0; i = 1; do { digito = aux%10; aux = aux/10; i++; numero += digito*(10*i); } while(i <= n); return numero; } int main(void) { int x,y; int* p1; int* p2; x = 10; y = 20; p1 = &x; p2 = &y; (*p1)++; printf ("Vamos assumir que o endereço da variável x é %d e o da variável y é %d.\n", endereco_reduzido(&x, TAM), endereco_reduzido(&y, TAM)); printf ("a) x = %d\n", x); printf ("b) y = %d\n", y); printf ("c) &x = %d\n", endereco_reduzido(&x, TAM)); printf ("d) &y = %d\n", endereco_reduzido(&y, TAM)); printf ("e) p1 = %d\n", endereco_reduzido(p1, TAM)); printf ("f) p2 = %d\n", endereco_reduzido(p2, TAM)); printf ("g) *p1 + *p2 = %d\n", *p1 + *p2); printf ("h) *(&x) = %d\n", *(&x)); printf ("i) &(*p2) = %d\n", endereco_reduzido(&(*p2), TAM)); return 0; }