aula 121

Passagem de parâmetros por VALOR e por REFERÊNCIA em Portugol

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
		
	}
}

Deixe um comentário

vinte − 13 =

Wagner Gaspar

Capixaba de São Gabriel da Palha, Espírito Santo. Bacharel em Ciência da Computação pela Universidade Federal do Amazonas e mestre em informática pela Universidade Federal do Espírito Santo.