Ybadoo - Soluções em Software Livre
Tutoriais
Compiladores

Considere o seguinte programa escrito na sintaxe C:

void troca(int a, int b)
{
int temp = a;
a = b;
b = temp;
}

int main()
{
int list[] = {8, 7, 6, 5, 4, 3, 2, 1, 0};
int i = 5;

troca(i, list[i]);
}

Para cada um dos métodos de passagem de parâmetros a seguir, apresente os valores finais da variável list.

  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ávelInicialtroca(i, list[i])
list[0]88
list[1]77
list[2]66
list[3]55
list[4]44
list[5]33
list[6]22
list[7]11
list[8]00
i55
a 5 3
b 3 5
temp 5
Parâmetros são passados por referência
VariávelInicialtroca(i, list[i])
list[0]88
list[1]77
list[2]66
list[3]55
list[4]44
list[5]33 5
list[6]22
list[7]11
list[8]00
i55 3
a i
b list[5]
temp 5
Parâmetros são passados por nome
VariávelInicialtroca(i, list[i])
list[0]88
list[1]77
list[2]66
list[3]55 5
list[4]44
list[5]33
list[6]22
list[7]11
list[8]00
i55 3
a i
b list[i]
temp 5
Parâmetros são passados por valor-resultado
VariávelInicialtroca(i, list[i])
list[0]88
list[1]77
list[2]66
list[3]55
list[4]44
list[5]33 5
list[6]22
list[7]11
list[8]00
i55 3
a 5 3 (i)
b 3 5 (list[5])
temp 5