Skip to content

Latest commit

 

History

History
48 lines (45 loc) · 1.67 KB

README.org

File metadata and controls

48 lines (45 loc) · 1.67 KB

CATP #12.B (Subprogramas)

Considere o seguinte programa escrito na sintaxe da linguagem C:

void swap(int a, int b) {
  int temp;
  temp = a;
  a = b;
  b = temp;
}
void main() {
  int value = 4, list[5] = {9, 7, 5, 3, 1};
  swap(value, list[0]);
  //Ponto A
  swap(list[0], list[1]);
  //Ponto B
  swap(value, list[value]);
  //Ponto C
}

Para cada um dos métodos de passagem de parâmetros (por valor, por referência, por valor-resultado nas duas versões), quais são os valores das variáveis value e list nos três pontos (A, B, C)? Considere que na versão #1 do valor-resultado, a vinculação de estocagem é resolvida na chamada da função, enquando que na versão #2, tal vinculação é definida no retorno da função.

MétodoPontovaluelist
por ValorA
por ValorB
por ValorC
por ReferênciaA
por ReferênciaB
por ReferênciaC
por Valor-Resultado #1A
por Valor-Resultado #1B
por Valor-Resultado #1C
por Valor-Resultado #2A
por Valor-Resultado #2B
por Valor-Resultado #2C