Fundamentos de Programação 1 - Alcides Maya Tecnologia
Fundamentos de Programação 1 - Alcides Maya Tecnologia
Fundamentos de Programação 1 - Alcides Maya Tecnologia
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
Escola Alci<strong>de</strong>s <strong>Maya</strong> - Primeiro Módulo<br />
printf(“%d + %d = %d\n”, a, b, c);<br />
}<br />
int somar( int x, int y ) /* <strong>de</strong>claração da função */<br />
{<br />
int z;<br />
z = x + y;<br />
return(z);<br />
}<br />
/* tipo <strong>de</strong> retorno da função */<br />
Veja algumas consi<strong>de</strong>rações sobre o programa acima:<br />
• Antes da função main( ), <strong>de</strong>claramos o protótipo da função somar: int somar( int x, int y ); on<strong>de</strong> o protótipo<br />
explica que a função aceitará dois argumentos int e retorna um valor tipo int. Na verda<strong>de</strong>, o padrão ANSI sugere<br />
que toda a função seja prototipada num arquivo <strong>de</strong> cabeçalho separado. Como po<strong>de</strong>mos presumir, é assim que<br />
os arquivos <strong>de</strong> cabeçalho são associados às suas bibliotecas C apropriadas. Para programas simples, você po<strong>de</strong><br />
incluir o protótipo da função <strong>de</strong>ntro do corpo do programa<br />
• Na chamada da função: c = somar( a, b ); estamos atribuindo o valor <strong>de</strong> retorno da função a uma<br />
variável<br />
• Logo após a chave final da função main temos a <strong>de</strong>claração da função: int somar( int x, int y ) , que não<br />
tem ponto-e-vírgula.<br />
• E finalmente, antes da chave final da função: return(z); retornamos para a função chamadora o resultado<br />
do cálculo.<br />
Chamada por valor<br />
No programa anterior, os argumentos foram passados por valor para a função somar.<br />
Quando variáveis são passadas <strong>de</strong>ssa maneira, uma cópia do valor da variável é passada para a função.<br />
Como uma cópia é passada, a variável no programa <strong>de</strong> chamada não é alterada.<br />
Chamar uma função por valor é um meio popular <strong>de</strong> passar informações para uma função e é o método<br />
padrão em C.<br />
A limitação <strong>de</strong>sta técnica (“chamada por valor”) é que somente um valor é retornado pela função.<br />
Chamada por referência<br />
Em uma chamada por referência, o en<strong>de</strong>reço do argumento, e não seu valor, é passado para a função. Esta<br />
passagem exige menos memória pelo programa do que a chamado por valor.<br />
Quando usamos uma chamada por referência, as variáveis na chamada do programa po<strong>de</strong>m ser alteradas.<br />
A vantagem <strong>de</strong>sta técnica (“chamada por referência”) é que mais <strong>de</strong> um valor po<strong>de</strong> ser retornado pela<br />
função.<br />
Vejamos o programa anterior utilizando esta técnica:<br />
int somar( int *x, int *y );<br />
main( )<br />
{<br />
int a,b,c;<br />
a=5;<br />
b=93;<br />
80