Considere o seguinte programa escrito na sintaxe C:
int sum(int i, int j, int t)
{
int temp = 0;
for(; i <= j; i++)
{
temp = temp + t;
}
return temp;
}
void main()
{
int k = 1;
printf("%d", sum(k, 5, k * k));
}
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 | sum(k, 5, k * k) |
---|
k | 1 | 1 |
i | | 1 2 3 4 5 6 |
j | | 5 |
t | | 1 |
temp | | 0 1 2 3 4 5 |
Parâmetros são passados por referênciaVariável | Inicial | sum(k, 5, k * k) |
---|
k | 1 | 1 2 3 4 5 6 |
i | | k |
j | | 5 |
t | | 1 |
temp | | 0 1 2 3 4 5 |
Parâmetros são passados por nomeVariável | Inicial | sum(k, 5, k * k) |
---|
k | 1 | 1 2 3 4 5 6 |
i | | k |
j | | 5 |
t | | k * k |
temp | | 0 1 5 14 30 55 |
Parâmetros são passados por valor-resultadoVariável | Inicial | sum(k, 5, k * k) |
---|
k | 1 | 1 6 |
i | | 1 2 3 4 5 6 (k) |
j | | 5 |
t | | 1 |
temp | | 0 1 2 3 4 5 |