Ybadoo - Soluções em Software Livre
Tutoriais
Compiladores

Considere o seguinte programa escrito na sintaxe C:

void xpto(int a, int b, int c)
{
a = b + c;
b = b * 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 8
b 3 15
c 5
Parâmetros são passados por referência
VariávelInicialxpto(x, y, x + y)
x22 8
y33 15
a x
b y
c 5
Parâmetros são passados por nome
VariávelInicialxpto(x, y, x + y)
x22 8
y33 33
a x
b y
c x + y
Parâmetros são passados por valor-resultado
VariávelInicialxpto(x, y, x + y)
x22 8
y33 15
a 2 8 (x)
b 3 15 (y)
c 5