Neander
Ponteiros e Alocação Dinâmica
Prof. Ernesto Trajan
Introdução
As variáveis ficam armazenadas em determinados espaços na memória do computador, chamados de : Endereços de memória.
●
Usamos o nome da variável como forma mais fácil de acesso a um endereço de memória.
●
As linguagens de programação permitem armazenar dados em variáveis que correspondem a endereços de memória onde determinado dado é armazenado temporariamente.
●
Uma variável pode armazenar o endereço de memória de outra variável, atuando com uma referência ao conteúdo da outra.
●
●
A esse conceito chamamos de : PONTEIRO
Ponteiros
São variáveis especiais que armazenam endereços de memória.
● Permite ter acesso direto a este endereço, como também manipular o valor que está armazenado lá dentro.
●
Uma variável do tipo ponteiro guarda apenas o ponteiro (endereço) de seu tipo especificado.
●
●
Operadores de ponteiros:
& - (ê comercial)
* - (asterisco)
Operadores de acesso ao endereço de memória.
Ponteiros
●
Variável do tipo ponteiro:
●
●
●
variável que armazena o endereço de memória de outra variável.
"Aponta para ..."
Operadores unários de ponteiros:
●
●
"&" : retorna o endereço de memória de uma variável
"*" : define uma variável do tipo ponteiro.
: representa o conteúdo da variável que está apontando.
: ex: int x = 5; int* ptr = &x; // atribui o 'endereço de' x à variável ptr.
*ptr -> representa o conteúdo da variável x. (mesmo que x). ptr -> representa o endereço de memória da variável x.
Operador &
É um operador unário que retorna o endereço de memória de seu operando. ●
●
Significa “o endereço de”
Operador &
Memória
...
0x22ff47
0x22ff46
0x22ff45
0x22ff44
5
&x
...
x
Operador *
É um operador unário que devolve o valor da variável localizada no endereço que o segue.
●
●
retorna o endereço de memória de seu operando.
●
Operador de complemento