struct2.c 682 Bytes
Newer Older
1
// Passando argumentos por valor e referencia 
2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
#include <stdio.h>

struct coord {
	int x;
	int y;
};

void por_valor( struct coord );
void por_ref( struct coord * );

void main () {
	struct coord ponto;

	ponto.x = 2;
	ponto.y = 4;

	printf("Antes de chamar por_valor(): x = %d, y = %d\n", ponto.x, ponto.y);

20
	por_valor(ponto); // chamada por valor 
21 22 23

	printf("Depois de chamar por_valor(): x = %d, y = %d\n", ponto.x, ponto.y);

24
	por_ref(&ponto); // chamada por referencia 
25 26 27 28 29 30 31 32 33 34 35

	printf("Depois de chamar por_ref(): x = %d, y = %d\n", ponto.x, ponto.y);
}

void por_valor(struct coord ponto) {
	ponto.x = ponto.y = 0;
}

void por_ref(struct coord *ponto) {
	ponto->x = ponto->y = 0;
}