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
isabellakayene1712:
me marca como melhor resposta pfv
Respostas
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 similares
3 anos atrás
3 anos atrás
3 anos atrás
6 anos atrás
6 anos atrás
6 anos atrás
8 anos atrás
8 anos atrás
8 anos atrás