Dando continuidade ao estudo de ponteiros em nosso curso de programação C, vamos ver nesta aula como criar um procedimento para trocar o conteúdo de duas variáveis por meio de ponteiros.
Se você entendeu o que estudos até aqui sobre ponteiros você não terá problemas para realizar este exercício.
Imagine o mesmo exercício sem ponteiros. Temos duas variáveis A e B e desejamos trocar os valores das duas variáveis. Precisamos de uma variável auxiliar para receber um dos valores e então fazer a troca, assim:
C = A;
A = B;
B = C;
Com ponteiros é exatamente a mesma ideia. Recebemos dois ponteiros para inteiros e queremos trocar os valores das variáveis. O primeiro passo é salvar um dos valores em uma variável auxiliar, assim:
// fazendo uma cópia em c do conteúdo apontado por a c = *a;
Agora que fizemos uma cópia do conteúdo apontado por a, podemos substituir este valor, copiando o conteúdo apontado por b para a variável apontada por a, assim:
// variável apontada por a recebe o conteúdo da variável apontada por b *a = *b;
Por fim, basta salvarmos a cópia que fizemos em c na variável apontada por b, assim:
// variável apontada por b recebe o conteúdo de c *b = c;
Código completo em C para trocar o valor de duas variáveis por meio de ponteiros
/* Aula 193: Exercício 2 Código escrito por Wagner Gaspar Maior de 2021 2) Escreva um procedimento que troca os valores dos parâmetros recebidos. Sua assinatura deve ser: void troca(float *a, float *b); */ void troca(float *a, float *b){ float c; c = *a; *a = *b; *b = c; } int main(){ float num1 = 50, num2 = 101; printf("Num1: %.2f\tNum2: %.2f\n", num1, num2); troca(&num1, &num2); printf("Num1: %.2f\tNum2: %.2f\n", num1, num2); return 0; }