Anda di halaman 1dari 15

%p usado para

imprimir endereos de
memria em
hexadecimal
Sada:

Endereo varivel
22FE47 c
22FE48 b

...
22FE4C a
Declarando 3 variveis do tipo
ponteiro (*p1,*p2 e *p3). Sendo *p1 uma
varivel do tipo ponteiro para inteiro. Ou
seja, p1 armazena apenas endereos de
variveis do tipo inteiro. *p2 armazena
endereos de variveis do tipo float e *p3
que armazena endereos de variveis do
tipo char.
Atribuindo a varivel p1 o endereo da
varivel b (ambas do tipo inteiro).

Imprimindo na tela:
O endereo da varivel b
O que est armazenado na varivel p1
O endereo da varivel p1
Operao invlida! Por que?

Porque p1 pode apenas guardar endereos de


variveis do tipo inteiro! A varivel a do tipo
char.

Como corrigir?
Endereo Varivel Contedo

22FE38 p2 22FE48
22FE40 p1 22FE4F
22FE48 b

22FE4F a
Endereo Varivel Contedo

22FE38
22FE40 p1 22FE4C
22FE48
Acessando o contedo do endereo 22FE4C
22FE4C a 10
armazenado na varivel p1, ou seja
*22FE4C. O smbolo * serve tambm para 22FE4F
acessar o contedo de um endereo.
p1
a
Nessa situao, o
* utilizado para
obter o valor
apontado por
uma varivel
ponteiro
a=10

a=456? Pq?

Acessando o endereo
armazenado em p1 e naquele
endereo atribuindo o valor
456.

Anda mungkin juga menyukai