Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Aprenda Referências e Desreferenciações | Ponteiros
Fundamentos de C

bookReferências e Desreferenciações

Ponteiros são baseados em dois operadores:

  • O operador de endereço &.
  • O operador de desreferência *.

Operador de Endereço

O operador de endereço, representado por &, permite a interação direta com a RAM do computador. Utilizando &, é possível obter o endereço de memória real de um objeto.

Main.c

Main.c

copy
123456789101112
#include <stdio.h> int main() { int x = 100; printf("Value of variable: %d\n", x); printf("Address of variable into RAM: %p\n", &x); // using reference operator `&` for getting address return 0; }
Note
Nota

O especificador de formato utilizado para imprimir endereços (ponteiros) é %p.

Endereços são normalmente expressos em notação hexadecimal.

Operador de Desreferenciação

Por outro lado, o operador * fornece o nome do residente quando dado o endereço dele. Então, como podemos empregar esse operador se não estamos lidando diretamente com endereços? Se você possui uma expressão como &x, que retorna o endereço da variável x, aplicar o operador * a ela (*&x) fornece o valor da variável armazenado nesse endereço.

Note
Nota

Essencialmente, *&x é o mesmo que x.

Main.c

Main.c

copy
1234567891011121314
#include <stdio.h> int main() { int x = 100; printf("Value of variable: %d\n", x); printf("Address of variable in RAM: %p\n", &x); // using reference operator `&` printf("Dereferencing address of variable: %d", *(&x)); // using dereference operator `*` return 0; }
Note
Nota

Não confunda o operador de desreferência (*x) com o operador de multiplicação (x*y).

Tarefa

Swipe to start coding

  • Criar um array de inteiros com 5 elementos e preenchê-lo.
  • Obter o endereço do terceiro elemento.
  • Incrementar o endereço do terceiro elemento e desreferenciar o endereço incrementado para exibir o valor apontado.

Solução

Tudo estava claro?

Como podemos melhorá-lo?

Obrigado pelo seu feedback!

Seção 6. Capítulo 2
single

single

Pergunte à IA

expand

Pergunte à IA

ChatGPT

Pergunte o que quiser ou experimente uma das perguntas sugeridas para iniciar nosso bate-papo

close

Awesome!

Completion rate improved to 2.63

bookReferências e Desreferenciações

Deslize para mostrar o menu

Ponteiros são baseados em dois operadores:

  • O operador de endereço &.
  • O operador de desreferência *.

Operador de Endereço

O operador de endereço, representado por &, permite a interação direta com a RAM do computador. Utilizando &, é possível obter o endereço de memória real de um objeto.

Main.c

Main.c

copy
123456789101112
#include <stdio.h> int main() { int x = 100; printf("Value of variable: %d\n", x); printf("Address of variable into RAM: %p\n", &x); // using reference operator `&` for getting address return 0; }
Note
Nota

O especificador de formato utilizado para imprimir endereços (ponteiros) é %p.

Endereços são normalmente expressos em notação hexadecimal.

Operador de Desreferenciação

Por outro lado, o operador * fornece o nome do residente quando dado o endereço dele. Então, como podemos empregar esse operador se não estamos lidando diretamente com endereços? Se você possui uma expressão como &x, que retorna o endereço da variável x, aplicar o operador * a ela (*&x) fornece o valor da variável armazenado nesse endereço.

Note
Nota

Essencialmente, *&x é o mesmo que x.

Main.c

Main.c

copy
1234567891011121314
#include <stdio.h> int main() { int x = 100; printf("Value of variable: %d\n", x); printf("Address of variable in RAM: %p\n", &x); // using reference operator `&` printf("Dereferencing address of variable: %d", *(&x)); // using dereference operator `*` return 0; }
Note
Nota

Não confunda o operador de desreferência (*x) com o operador de multiplicação (x*y).

Tarefa

Swipe to start coding

  • Criar um array de inteiros com 5 elementos e preenchê-lo.
  • Obter o endereço do terceiro elemento.
  • Incrementar o endereço do terceiro elemento e desreferenciar o endereço incrementado para exibir o valor apontado.

Solução

Switch to desktopMude para o desktop para praticar no mundo realContinue de onde você está usando uma das opções abaixo
Tudo estava claro?

Como podemos melhorá-lo?

Obrigado pelo seu feedback!

Seção 6. Capítulo 2
single

single

some-alt