Analise o seguinte código implementado na linguagem C:
int soma(int *a, int *b) {
*a = *a + *b;
return *a;
}
int main() {
int x=5, y=3;
y = soma(&x, &y);
printf(¿%d¿, x+y);
return(0);
}
Qual será o valor exibido na saída padrão do sistema?
resposta: 16
Soluções para a tarefa
Respondido por
26
Resposta:
Resposta correta: 16
Explicação:
Na questão temos o exemplo de passagem de parâmetro por referência, em que usamos o endereço da memória da variável e não uma cópia do seu valor. Passagem de parâmetros por referência é representado pelo 'e comercial' (&)
No trecho abaixo estamos passando o endereço da variável, portanto qualquer alteração em qualquer uma das variáveis será refletido em todo o algoritmo:
y = soma(&x, &y) // y= soma(5,3)
y(int *a, int *b)
*a = *a + *b // a= 5 + 3
// a=8
return *a // Iremos retornar 8 e como alteramos o endereço da variável x ela também valera 8
y=8 // Y recebe o retorno da função
printf( x+y) // (8 + 8)
printf valerá 16
Perguntas interessantes
Matemática,
6 meses atrás
Geografia,
6 meses atrás
Ed. Técnica,
6 meses atrás
História,
7 meses atrás
Sociologia,
7 meses atrás
Contabilidade,
1 ano atrás
Português,
1 ano atrás
Matemática,
1 ano atrás