Você está na página 1de 6

Aula 12 Funes

Sub-rotinas, subprogramas, modularizao; O programa divido em vrios mdulos. Sintaxe bsica de uma funo:
<tipo> <nome> (lista de parmetros) { <corpo da funo>; return <varivel>; }

Passagem de parmetros por valor

Gera uma cpia dos parmetros passados pela funo; NO gera cpia dos parmetros passados pela funo; Utilizao do endereo de memria dos parmetros (ponteiros).

Passagem de parmetros por referncia


Aula 12 Funes : variveis locais x globais

Variveis locais : So declaradas dentro das funes; S podem ser utilizadas na funo em que foram declaradas; So criadas no momento da chamada funo e destrudas ao seu trmino. Variveis globais : So declaradas fora das funes; Podem ser utilizadas em qualquer funo; So criadas no incio da execuo do programa e destrudas somente ao seu trmino.

Aula 12 - Funes
Exemplo: #include<stdio.h> int cont; void func1() { int y; y=2; cont= cont + y; } void main() { int x; x=1; cont=100; func1(); }

Aula 12 Funes : ponteiros


um dos aspectos mais fortes e perigosos da programao C; uma varivel que contm um endereo de memria; Esse endereo se refere a posio de uma outra varivel;
Sintaxe Exemplo #include<stdio.h> void main() { int x, y; int *p1,*p2; x=10; p1=&x; p2=p1; y=*p2; printf(\n p1: %d, p1); printf(\n p2: %d, *p2); printf(\n y: %d, y); while(!kbhit()); }

<tipo> *<nome>; Operadores: & : operador de endereo de memria da varivel; * : devolve o valor da varivel;

Aula 12 Funes - Passagem de parmetros por valor


#include<stdio.h> int soma_dobro(int a, int b) { int soma; a=2*a; b=2*b; soma = a + b; return soma; } void main() { int x, y, r; x=10; y=10; r =soma_dobro(x,y); printf(\n A soma do dobro : %d, r); r =soma_dobro(x,y); printf(\n A soma do dobro : %d, r); r =soma_dobro(x,y); printf(\n A soma do dobro : %d, r); while(!kbhit()); }
Faa um programa que contenha uma funo que receba como parmetro por valor dois nmeros

inteiros, calcule e mostre a soma


do dobro destes nmeros.

Aula 12 Funes - Passagem de parmetros referncia


#include<stdio.h> int soma_dobro(int *a, int *b) { int soma; *a=2*(*a); *b=2*(*b); soma = *a + *b; return soma; } void main() { int x, y, r; x=10; y=10; r =soma_dobro(&x,&y); printf(\n A soma do dobro : %d, r); r =soma_dobro(&x,&y); printf(\n A soma do dobro : %d, r); r =soma_dobro(&x,&y); printf(\n A soma do dobro : %d, r); while(!kbhit()); }
Faa um programa que contenha uma funo que receba como parmetro por referncia dois

nmeros inteiros, calcule e mostre


a soma do dobro destes nmeros.

Você também pode gostar