Exemplo: Passagem por Referência e Passagem por Valor
//Erick Vivan
#include <stdio.h>
#include <stdlib.h>
void PASSAGEM_POR_REFERENCIA(int *a, int *b)
{
int aux;
aux = *a;
*a = *b;
*b = aux;
}
void PASSAGEM_POR_VALOR(int a, int b)
{
int aux;
aux = a;
a = b;
b = a;
}
main()
{
int opcao, A = 2, B = 5;
printf("Digite: \n\n");
printf("1 - para efetuar passagem por referencia\n");
printf("2 - para efetuar passagem por valor\n\n");
printf("Opcao: ");
scanf("%d", &opcao);
switch(opcao)
{
case 1:
printf("Antes de chamar a funcao:\n");
printf("A = %d \nB = %d\n\n", A, B);
printf("Depois de chamar a funcao:\n");
PASSAGEM_POR_REFERENCIA(&A, &B);
printf("A = %d \nB = %d\n\n", A, B);
break;
case 2:
printf("Antes de chamar a funcao:\n");
printf("A = %d \nB = %d\n\n", A, B);
printf("Depois de chamar a funcao:\n");
PASSAGEM_POR_VALOR(A, B);
printf("A = %d \nB = %d\n\n", A, B);
break;
default:
printf("Opcao invalida!\n\n");
}
system("pause");
}