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.
- Parâmetros são passados por valor;
- Parâmetros são passados por referência;
- Parâmetros são passados por nome;
- Parâmetros são passados por valor-resultado.
Parâmetros são passados por valor| Variável | Inicial | troca(i, list[i]) |
|---|
| list[0] | 8 | 8 |
| list[1] | 7 | 7 |
| list[2] | 6 | 6 |
| list[3] | 5 | 5 |
| list[4] | 4 | 4 |
| list[5] | 3 | 3 |
| list[6] | 2 | 2 |
| list[7] | 1 | 1 |
| list[8] | 0 | 0 |
| i | 5 | 5 |
| a | | 5 3 |
| b | | 3 5 |
| temp | | 5 |
Parâmetros são passados por referência| Variável | Inicial | troca(i, list[i]) |
|---|
| list[0] | 8 | 8 |
| list[1] | 7 | 7 |
| list[2] | 6 | 6 |
| list[3] | 5 | 5 |
| list[4] | 4 | 4 |
| list[5] | 3 | 3 5 |
| list[6] | 2 | 2 |
| list[7] | 1 | 1 |
| list[8] | 0 | 0 |
| i | 5 | 5 3 |
| a | | i |
| b | | list[5] |
| temp | | 5 |
Parâmetros são passados por nome| Variável | Inicial | troca(i, list[i]) |
|---|
| list[0] | 8 | 8 |
| list[1] | 7 | 7 |
| list[2] | 6 | 6 |
| list[3] | 5 | 5 5 |
| list[4] | 4 | 4 |
| list[5] | 3 | 3 |
| list[6] | 2 | 2 |
| list[7] | 1 | 1 |
| list[8] | 0 | 0 |
| i | 5 | 5 3 |
| a | | i |
| b | | list[i] |
| temp | | 5 |
Parâmetros são passados por valor-resultado| Variável | Inicial | troca(i, list[i]) |
|---|
| list[0] | 8 | 8 |
| list[1] | 7 | 7 |
| list[2] | 6 | 6 |
| list[3] | 5 | 5 |
| list[4] | 4 | 4 |
| list[5] | 3 | 3 5 |
| list[6] | 2 | 2 |
| list[7] | 1 | 1 |
| list[8] | 0 | 0 |
| i | 5 | 5 3 |
| a | | 5 3 (i) |
| b | | 3 5 (list[5]) |
| temp | | 5 |