🎯 Ponteiros

Em poucas palavras

Em programação, um ponteiro é um tipo de dado cujo valor se refere diretamente a outro valor armazenado em uma área da memória, através de seu endereço [^1]. Essencialmente, um ponteiro “aponta” para a localização de outro dado na memória. É uma implementação fundamental do conceito de referência em ciência da computação.


📝 Notas e Desenvolvimento


🔗 Conexões e Contexto


📚 Referências e Fontes

Citações Diretas

📂 Outros Conteúdos Preservados

Como os Ponteiros Funcionam

Ponteiros são cruciais para o gerenciamento de memória e para operações de baixo nível em muitas linguagens de programação.

  1. Endereço de Memória: O valor de um ponteiro é um endereço de memória. Ao “desreferenciar” um ponteiro, você acessa o valor armazenado naquele endereço.
  2. Alocação de Memória: Em contextos de Alocação de memória dinâmica, como a alocação no heap, quando você solicita espaço na memória, o sistema retorna um ponteiro para o início desse bloco de memória alocado [^2]. Isso permite que o programa acesse e manipule os dados armazenados ali.

Ponteiros em C

A linguagem C faz uso extensivo de ponteiros, permitindo um controle preciso sobre a memória.

Exemplo de Declaração e Uso em C:

Em C, um ponteiro é declarado com um asterisco (*) e o endereço de uma variável é obtido com o operador &.

#include <stdio.h>
 
int main(void) {
	int n = 50;
	// *p é um ponteiro chamado p que aponta para o endereço de n.
	int *p = &n;
	// imprime o que estiver no endereço para o qual p aponta (o valor de n).
	printf("%i", *p); // Saída: 50
}

Aritmética de Ponteiros:

É possível realizar operações matemáticas simples com ponteiros, como adição e subtração. Isso é particularmente útil para navegar em estruturas de dados contíguas na memória, como arrays [

#include <stdio.h>
 
int main (void) {
	char *s = "hi!"; // s é um ponteiro para o primeiro caractere da string "hi!"
	printf ("%c", *s);    // Saída: h
	printf ("%c", *(s+1)); // Saída: i (acessa o próximo caractere)
	printf ("%c\n", *(s+2)); // Saída: ! (acessa o caractere seguinte)
}

Ponteiros em Python (Referências)

Em Python, as variáveis funcionam como referências (ou “ponteiros”) para objetos na memória. Quando você atribui um valor a uma variável, ela passa a apontar para aquele objeto. Se você atribui um novo valor, ela pode passar a apontar para um novo objeto [

lista_a = [1, 2, 3]
lista_b = lista_a # lista_b agora referencia o MESMO objeto que lista_a
 
lista_b.append(4)
print(lista_a) # Saída: [1, 2, 3, 4] - Ambos foram alterados porque apontam para o mesmo objeto.
 
lista_c = [5, 6, 7]
lista_d = lista_c[:] # Cria uma CÓPIA do objeto, não uma referência ao mesmo objeto.
 
lista_d.append(8)
print(lista_c) # Saída: [5, 6, 7] - lista_c não foi alterada.
print(lista_d) # Saída: [5, 6, 7, 8]

Ver também