Ybadoo - Soluções em Software Livre
Tutoriais
Compiladores

Considere o seguinte programa escrito na sintaxe C:

void xpto(int a, int b, int c)
{
for(int i = 0; i < 3; i++)
{
a = i + c;
b = a * c;
}
}

void main()
{
int x = 2;
int y = 3;

xpto(x, y, x + y);

printf("%d", x);
printf("%d", y);
}

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ávelInicialxpto(x, y, x + y)
x22
y33
a 2 5 6 7
b 3 25 30 35
c 5
i 0 1 2 3
Parâmetros são passados por referência
VariávelInicialxpto(x, y, x + y)
x22 5 6 7
y33 25 30 35
a x
b y
c 5
i 0 1 2 3
Parâmetros são passados por nome
VariávelInicialxpto(x, y, x + y)
x22 5 46 4004
y33 40 3956 31871840
a x
b y
c x + y
i 0 1 2 3
Parâmetros são passados por valor-resultado
VariávelInicialxpto(x, y, x + y)
x22 7
y33 35
a 2 5 6 7 (x)
b 3 25 30 35 (y)
c 5
i 0 1 2 3