Dúvida lista parâmetros

2 views
Skip to first unread message

Pedro Lopes

unread,
Nov 25, 2025, 5:09:22 PMNov 25
to [CEFET-MG]: Linguagens de Programação (DECOM009)
Olá, professor! Tudo bem?

Tive um raciocínio e gostaria de ver se ele está correto.

Na questão 1) (print em anexo) a passagem por valor resultado resultaria em A[0] = 3; A[1] = 2; , pois A[A[0]] indica o endereço de A[0], pois A[0] = 0. Logo, ao acessar A[A[0]], substituo A[0] por 0 e envio uma cópia da referência para a função.

Já na questão 1)c), a passagem por referência de A[A[0]] envia uma referência para a posição apontada por A[A[0]]. Logo, quando A[0] muda para 1 (x=1), ele passa a apontar para A[1] e, assim, o resultado seria A[0]= 1 e A[1] = 3. 

Seria esse raciocínio correto?

imagem_2025-11-25_190718527.png

Andrei Alvares

unread,
Nov 26, 2025, 7:22:59 AMNov 26
to Pedro Lopes, [CEFET-MG]: Linguagens de Programação (DECOM009)
Ei Pedro,

On Tue, Nov 25, 2025 at 7:09 PM Pedro Lopes <pedrol...@gmail.com> wrote:
Olá, professor! Tudo bem?

Tive um raciocínio e gostaria de ver se ele está correto.

Na questão 1) (print em anexo) a passagem por valor resultado resultaria em A[0] = 3; A[1] = 2; , pois A[A[0]] indica o endereço de A[0], pois A[0] = 0. Logo, ao acessar A[A[0]], substituo A[0] por 0 e envio uma cópia da referência para a função.


Correto.
 
Já na questão 1)c), a passagem por referência de A[A[0]] envia uma referência para a posição apontada por A[A[0]]. Logo, quando A[0] muda para 1 (x=1), ele passa a apontar para A[1] e, assim, o resultado seria A[0]= 1 e A[1] = 3. 

Não, lembra que a linguagem precisa fazer a avaliação antes de realizar a chamada. Portanto, antes da chamada, A[0] tem valor 0 e portanto A[A[0]] avalia em A[0] e então a referência para y aponta para A[0]. Assim, tanto a variável x quanto a variável y apontam para A[0]. Portanto, x=1 troca A[0] para 1 e y=3 troca A[0] para 3. Portanto, a resposta ficaria: A[0] = 3 e A[1] = 2 (A[1] não foi alterada).

  Na sala tento desenhar melhor com você.
    []z, Andrei


Seria esse raciocínio correto?

--
Você recebeu essa mensagem porque está inscrito no grupo "[CEFET-MG]: Linguagens de Programação (DECOM009)" dos Grupos do Google.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para decom009+u...@googlegroups.com.
Para ver esta conversa, acesse https://groups.google.com/d/msgid/decom009/da5b4dca-874e-4be2-81e8-67f838415522n%40googlegroups.com.
Reply all
Reply to author
Forward
0 new messages