Observe o seguinte programa:
E a seguinte definição da função :
Quais serão os valores de e impressos ao fim da execução desse programa dado que os valores inseridos pelo usuário como entrada desse programa serão 3 e 4 respectivamente?
Passo 1
Para entendermos o que será impresso por esse programa temos primeiro que entender o funcionamento da função .
Analisando os seus parâmetros conseguimos identificar que ela espera como entrada dois ponteiros para inteiro e . Em seguida, atribui a o endereço armazenado por (linha 03). Ou seja, logo no início da função temos tanto quanto apontando para o mesmo endereço.
Como o enunciado nos diz que os dados inserido pelo usuário são 3 e 4 e esses são passados como parâmetros dessa função através dos endereços de e , podemos dizer que tanto quanto apontam para a variável .
Passo 2
Na linha seguinte (linha 04 da função) temos a atribuição da multiplicação entre o valor armazenado pela variável apontada por e o valor da variável apontada por a variável apontada por . Como ambos os ponteiros apontam para mesma variável, que é que armazena o valor 4, isso não passa de uma atribuição a de .
Passo 3
Continuando, na linha 5 da função, temos a atribuição da soma entre o valor da variável apontada por e 2 a variável apontada por . Como o ponteiro aponta para a variável (que armazena o valor 16), isso não passa de uma atribuição a de .
Resposta
Por fim, na linha 14 do programa, temos a impressão dos valores de e . Como dentro da função ambos os ponteiros passaram a apontar para , não houve manipulações em que por esse motivo manteve o seu valor original de 3. Já em relação a , o resultado obtido após todas as manipulações dentro da função foi 18 e esse que será impresso na tela.
Sendo assim, a impressão será , .