Exercícios Resolvidos de Ponteiros e funções

Ver Teoria

Enunciado

Receba do usuário dois números. Crie uma função que receba dois números como parâmetros e retorne o endereço de memória do maior número.

Passo 1

Vamos lá pessoal.

Essa é uma questão de função que retorna ponteiro. Vamos fazer uma função que recebe dois valores e retorna o endereço de memória do maior valor

Só que tem um detalhe, a gente não pode receber os parâmetros através de passagem por valor. Quando usamos passagem por valor nós criamos cópias da variável original com um endereço de memória diferente. Então devemos usar passagem por ponteiro ou passagem por referência, pois assim, a função terá acesso aos endereços de memória originais.

Mas antes, vamos escrever o cabeçalho da questão.

Passo 2

Vamos desenvolver a função m a i o r que recebe dois valores, e retorna o endereço de memória do maior valor.

Essa é uma função que retorna o endereço de memória, então, na declaração da função, o tipo deve ser acompanhado de um *

t i p o * n o m e F u n c a o (   p a r a m e t r o s   )

Os parâmetros serão recebidos através de passagem por referência, assim o endereço de memória original de cada variável será preservado. Isso é importante, pois a gente precisa conhecer os endereços de memória para poder retorná-los

O conteúdo da função consiste em comparar as variáveis a e b . Se a for maior então retornamos o endereço de memória de a , para isso é necessário usar o operador & .

E caso contrário, vamos retornar o endereço de memória de b .

Passo 3

Agora vamos testar a função.

Dentro da m a i n ( ) vamos declarar duas variáveis inteiras   a e b , que vão receber os valores do usuário.

Também vamos declarar um ponteiro para inteiro p n t que vai receber o resultado da função.

Usando o c i n e c o u t pedimos para o usuário inserir os valores das variáveis.

E executamos a função m a i o r e guardamos o resultado no ponteiro p n t

E agora vamos imprimir o valor do endereço de memória e o valor contido no endereço de memória:

E o resultado é:

E prontinho! Questão feita!

Resposta