Ybadoo - Soluções em Software Livre
Tutoriais
Compiladores

Considere o seguinte programa escrito na sintaxe C:

void add(int x, int y)
{
for(int i = 0; i < 3; i++)
{
x = x + y;
}
}

void main()
{
int a = 3;

add(a, a + 2);

printf("%d", a);
}

Para cada um dos métodos de passagem de parâmetros a seguir, quais são os valores impressos pelo programa.

  1. Parâmetros são passados por valor;
  2. Parâmetros são passados por referência;
  3. Parâmetros são passados por nome;
  4. Parâmetros são passados por valor-resultado.

 

Parâmetros são passados por valor
VariávelInicialadd(a, a + 2)
a33
x 3 8 13 18
y 5
i 0 1 2 3
Parâmetros são passados por referência
VariávelInicialadd(a, a + 2)
a33 8 13 18
x a
y 5
i 0 1 2 3
Parâmetros são passados por nome
VariávelInicialadd(a, a + 2)
a33 8 18 38
x a
y a + 2
i 0 1 2 3
Parâmetros são passados por valor-resultado
VariávelInicialadd(a, a + 2)
a33 18
x 3 8 13 18 (a)
y 5
i 0 1 2 3