
- a memória do computador é formada por (bilhões de) células
- as células têm endereços consecutivos, que são inteiros ≥ 0
- cada célula guarda 8 bits (bit = dígito binário, 0 ou 1), que
formam um byte
- variáveis ficam armazenadas em células consecutivas, e tipos
diferentes ocupam números diferentes de células
int
’s ocupam 4 bytes
double
’s ocupam 8 bytes
- o endereço de uma variável
x
é &x
- o tipo de um endereço de uma variável
int
é int *
- o tipo de um endereço de uma variável
int
é double *
- variáveis que guardam endereços são chamadas ponteiros
- se
p
tem tipo int *
(ponteiro para int
), então *p
refere-se
ao valor int
armazenado no endereço guardado em p
- a passagem de ponteiro como parâmetro de funções também ocorre por
valor; porém, efetivamente permite emular passagem por
referência
- cuidado ao declarar múltiplos ponteiros:
int *x, y;
declara um
ponteiro x
para int
e um inteiro (!) y
; para declarar ponteiros
x
e y
para int
, use int *x, *y;