fork download
  1. #include<stdio.h>
  2. #include<stdlib.h>
  3.  
  4.  
  5. /* Procedimento */
  6. void altera(int vet[], int x)
  7. {
  8. vet[0] = -55;
  9. x = -2;
  10. }
  11.  
  12.  
  13. /* Funcao principal */
  14. int main(void)
  15. {
  16. /* Declaracao de Variaveis e atribuicao de valores */
  17. int vet[] = {3, 4, 5, 6, 7, 8, 9};
  18. int x = 0;
  19.  
  20. printf("===========================================\n");
  21. printf(" Passagem por referencia x por valor \n");
  22. printf("===========================================\n");
  23. printf("\n");
  24.  
  25.  
  26. printf("Antes de chamar funcao \"altera\":\n");
  27. printf("vet[0] = %d\n", vet[0]);
  28. printf("x = %d\n", x);
  29. printf("\n");
  30.  
  31. altera(vet, x);
  32.  
  33. printf("Depois de chamar funcao \"altera\":\n");
  34. printf("vet[0] = %d\n", vet[0]);
  35. printf("x = %d", x);
  36.  
  37. /* Pausa na execucao do programa */
  38. printf("\n\n");
  39.  
  40. return 0;
  41. }
  42.  
Success #stdin #stdout 0s 5400KB
stdin
Standard input is empty
stdout
===========================================
 Passagem por referencia x por valor       
===========================================

Antes de chamar funcao "altera":
vet[0] = 3
x      = 0

Depois de chamar funcao "altera":
vet[0] = -55
x      = 0