Ybadoo - Soluções em Software Livre
Tutoriais
Compiladores

(Price, 2005) Considere o seguinte programa escrito na sintaxe C:

void xpto(int x, int y, int z)
{
x = y + 1;

z = x + y;
}

void main()
{
int a = 3;

int b = 5;

xpto(a, a + b, b);

printf("%d - %d", a, b);
}

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(a, a + b, b)
a33
b55
x 3 9
y  8
z 5 17
Parâmetros são passados por referência
VariávelInicialxpto(a, a + b, b)
a33 9
b55 17
x a
y 8
z b
Parâmetros são passados por nome
VariávelInicialxpto(a, a + b, b)
a33 9
b55 23
x a
y a + b
z b
Parâmetros são passados por valor-resultado
VariávelInicialxpto(a, a + b, b)
a33 9
b55 17
x 3 9 (a)
y 8
z 5 17 (b)

Price, Ana Maria de Alencar. (2005). Implementação de Linguagens de Programação: compiladores. 3ª edição. Porto Alegre: Instituto de Informática da UFRGS: Sagra Luzzatto. 212 páginas.