Linguagem C 25.ª Edição Atualizada e Aumentada FCA Editora (c) 2025
9
EXERCÍCIOS PROPOSTOS – SOLUÇÃO 9.1 Pergunta: Na função isZero, queremos alterar o parâmetro n? Resposta: Não, queremos apenas verificar se o seu valor é zero ou não. Por isso, não há necessidade de passar o endereço da variável: int isZero(int n) /* n - Parâmetro de input */ { return n==0; }
Pergunta: Na função add1, queremos alterar o parâmetro n? Resposta: Sim, pois queremos adicionar 1 unidade ao valor que este já contém. Temos, pois, de passar o endereço da variável: void add1(int *n) /* n - Parâmetro de input/Output */ { (*n)++; }
Pergunta: Na função setZero, queremos alterar o parâmetro n? Resposta: Sim, pois queremos colocar o valor zero no parâmetro, independentemente do valor que este traga de fora. Temos, por isso, de passar o endereço da variável: void setZero(int *n) /* n - Parâmetro de Output */ { *n = 0; }
Diz-se que um parâmetro é de input, se o valor que contém é essencial para o processamento da função. Nos exemplos anteriores, as funções isZero e add1 usam o valor existente no parâmetro para o processamento. Diz-se que um parâmetro é de output, se o valor deste é alterado dentro da função e enviado para fora desta. Nos exemplos anteriores, as funções add1 e setZero alteram o valor existente no parâmetro. Diz-se que um parâmetro é de input/ /output, se o valor trazido por este é essencial para o processamento da função e sai da função alterado. É o caso do parâmetro da função add1. De notar que, se a palavra output existir no tipo de parâmetro (isto é, o parâmetro vai sair alterado), então, devemos enviar um endereço para a função.
© FCA
1