Nesta aula vamos aprender sobre passagem de parâmetros por valor e por referência em portugol.
Até o momento, toda vez que passamos algum parâmetro para nossas funções e procedimentos, fizemos uma passagem de parâmetro por valor. Isso significa que o computador literalmente faz uma cópia da variável passada como parâmetro.
Contudo, há outra forma bem interessante conhecida como passagem de parâmetro por referência, que iremos aprender nesta aula.
Passando uma variável como parâmetro por referência, o computador cria uma referência para a variável original, uma espécie de ponteiro. Dessa forma, qualquer alteração feita dentro da função / procedimento, irá alterar também a variável original.
No código a seguir observe o procedimento imprimir. Ele recebe dois parâmetros, um inteiro i e um caracter l. Perceba que à esquerda de l há um e comercial (&). Este & comercial indica que será feito aí uma passagem de parâmetro por referência, ou seja, não será feito uma cópia da variável original, mas uma referencia para ela. Qualquer alteração na variável l irá alterar também nossa variável original.
A variável i, por outro lado, não possui o & à esquerda. Isso significa que temos uma passagem de parâmetro por valor, ou seja, será feita uma cópia da variável original e, qualquer alteração feita, será feita nesta cópia, não alterando nossa variável original.
programa{ /* Passagem de parâmetros por VALOR e por REFERÊNCIA Código escrito por Wagner Gaspar Abril de 2021 */ funcao imprimir(inteiro i, caracter &l){ escreva(i, "\t", l, "\n") i = 50 // altera a variável i, que é uma cópia de idade l = 'W' // altera a variável letra, pois l é uma referência para letra } funcao inicio() { inteiro idade = 35 caracter letra = 'A' imprimir(idade, letra) escreva("Idade: ", idade, "\n") // idade não foi alterada escreva("letra: ", letra, "\n") // letra foi alterada } }