1
resposta

[Dúvida] Não estou conseguindo entender Ponteiro

Estou com muita dificuldade de entender ponteiros durante as aulas, estou confusa... Preciso de uma definição mais detalhada

1 resposta

Oii, Ingrid, tudo bem?

Aprender sobre ponteiros pode ser difícil mesmo. Vamos com calma!

O que são Ponteiros?

Um ponteiro é uma variável que armazena o endereço de memória de outra variável. Em outras palavras, em vez de armazenar um valor diretamente, ele armazena a localização onde o valor está guardado.

Como declarar e usar um ponteiro?

Para declarar um ponteiro, você usa o símbolo * antes do nome da variável. Por exemplo:

int* ponteiroParaInteiro;
char* ponteiroParaChar;

Atribuindo um endereço a um ponteiro

Para atribuir um endereço a um ponteiro, você usa o operador & (endereço de). Assim:

int numero = 10;
int* ponteiroParaNumero = №

Aqui, ponteiroParaNumero agora contém o endereço de memória da variável numero.

Acessando o valor armazenado no endereço apontado pelo ponteiro

Para acessar o valor armazenado no endereço apontado pelo ponteiro, você usa o operador * (desreferência). Por exemplo:

printf("Valor de numero: %d\n", *ponteiroParaNumero);

Isso imprimirá 10, que é o valor armazenado na variável numero.

Exemplo prático com funções

Vamos aplicar isso em uma função. Suponha que você queira escrever uma função que troca os valores de duas variáveis:

void trocar(int* a, int* b) {
    int temp = *a;
    *a = *b;
    *b = temp;
}

int main() {
    int x = 5;
    int y = 10;
    
    printf("Antes da troca: x = %d, y = %d\n", x, y);
    
    trocar(&x, &y);
    
    printf("Depois da troca: x = %d, y = %d\n", x, y);
    
    return 0;
}

Ali, a função trocar recebe dois ponteiros a e b. Ela usa esses ponteiros para acessar e trocar os valores das variáveis x e y diretamente, sem fazer cópias.

Se outra dúvida surgir, estamos disponíveis.

Abraços!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓.