Considere o seguinte programa escrito na sintaxe C:
void xpto(int a, int b, int c)
{
a = b + c;
b = b * c;
}
void main()
{
int x = 2;
int y = 3;
xpto(x, y, x + y);
printf("%d", x);
printf("%d", y);
}
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 | xpto(x, y, x + y) |
---|
x | 2 | 2 |
y | 3 | 3 |
a | | 2 8 |
b | | 3 15 |
c | | 5 |
Parâmetros são passados por referênciaVariável | Inicial | xpto(x, y, x + y) |
---|
x | 2 | 2 8 |
y | 3 | 3 15 |
a | | x |
b | | y |
c | | 5 |
Parâmetros são passados por nomeVariável | Inicial | xpto(x, y, x + y) |
---|
x | 2 | 2 8 |
y | 3 | 3 33 |
a | | x |
b | | y |
c | | x + y |
Parâmetros são passados por valor-resultadoVariável | Inicial | xpto(x, y, x + y) |
---|
x | 2 | 2 8 |
y | 3 | 3 15 |
a | | 2 8 (x) |
b | | 3 15 (y) |
c | | 5 |