Na programação estruturada, as funções podem receber parâmetros por valor ou por referência. Sobre passagem de parâmetro por referência, assinale a afirmativa correta.
- A)Somente é possível passar por referência parâmetros do tipo char.
Errada, porque passagem por referência não é exclusiva do tipo char; depende do mecanismo de passagem, não do tipo do dado.
- B)Somente é possível passar por referência parâmetros do tipo inteiro.
Errada, porque passagem por referência também não se limita a inteiros; qualquer tipo compatível com o mecanismo pode ser passado dessa forma.
- C)Um parâmetro passado por referência é, na verdade, um endereço de memória.
Certa, pois um parâmetro passado por referência representa o endereço de memória do dado original, permitindo alterá-lo diretamente.
- D)Um parâmetro passado por referência é, na verdade, um valor armazenado na memória.
Errada, porque isso descreve passagem por valor: o que se passa é o conteúdo armazenado, não o endereço da variável.
Gabarito: C
Na programação estruturada, a forma como um parâmetro é entregue à função muda totalmente o comportamento do código. Na passagem por valor, a função recebe uma cópia do dado, então alterações feitas dentro dela não atingem a variável original. Já na passagem por referência, a função trabalha com a localização da variável na memória, ou seja, ela acessa o próprio endereço do dado e pode alterá-lo diretamente. É por isso que o gabarito é a letra C. Quando um parâmetro é passado por referência, ele não representa uma nova cópia do conteúdo, mas sim uma ligação com a posição de memória do argumento original. Em linguagens como C, isso costuma aparecer por meio de ponteiros; em outras linguagens, pode ser implementado de forma diferente, mas a ideia central é a mesma: a função mexe no original. Então, se a função altera um valor recebido por referência, a mudança “vaza” para fora dela. Parece mágica, mas é só memória sendo compartilhada com carinho e perigo. Por isso as alternativas que tentam limitar isso ao tipo char ou inteiro estão erradas: o conceito não depende do tipo do dado, e sim da forma de passagem. Em doutrina de algoritmos e programação estruturada, a passagem por referência é tratada justamente como acesso ao endereço da variável, enquanto a passagem por valor copia o conteúdo armazenado. Essa distinção é clássica em provas de concurso.