Considere o seguinte programa escrito na sintaxe C:
void add(int x, int y)
{
for(int i = 0; i < 3; i++)
{
x = x + y;
}
}
void main()
{
int a = 3;
add(a, a + 2);
printf("%d", a);
}
Para cada um dos métodos de passagem de parâmetros a seguir, quais são os valores impressos pelo programa.
- 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 | add(a, a + 2) |
|---|
| a | 3 | 3 |
| x | | 3 8 13 18 |
| y | | 5 |
| i | | 0 1 2 3 |
Parâmetros são passados por referência| Variável | Inicial | add(a, a + 2) |
|---|
| a | 3 | 3 8 13 18 |
| x | | a |
| y | | 5 |
| i | | 0 1 2 3 |
Parâmetros são passados por nome| Variável | Inicial | add(a, a + 2) |
|---|
| a | 3 | 3 8 18 38 |
| x | | a |
| y | | a + 2 |
| i | | 0 1 2 3 |
Parâmetros são passados por valor-resultado| Variável | Inicial | add(a, a + 2) |
|---|
| a | 3 | 3 18 |
| x | | 3 8 13 18 (a) |
| y | | 5 |
| i | | 0 1 2 3 |