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 valorVariá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ênciaVariá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 nomeVariá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-resultadoVariável | Inicial | add(a, a + 2) |
---|
a | 3 | 3 18 |
x | | 3 8 13 18 (a) |
y | | 5 |
i | | 0 1 2 3 |