fork download
  1. #include<stdio.h>
  2.  
  3. void swap_a(int a,int b){
  4. int tmp;
  5. tmp = a;
  6. a = b;
  7. b = tmp;
  8. }
  9.  
  10. void swap_b(int*a,int*b){
  11. int tmp;
  12. tmp =*a;
  13. *a = *b;
  14. *b = tmp;
  15. }
  16.  
  17. void swap_c(int*a,int*b){
  18. int *tmp;
  19. tmp = a;
  20. a = b;
  21. b = tmp;
  22. }
  23.  
  24. void swap_print(int a,int b){
  25. printf("a = %d,b = %d\n",a,b);
  26. }
  27.  
  28. int main(){
  29. int a,b;
  30.  
  31. a = 100; b = 200;
  32. swap_print(a,b);
  33.  
  34. printf("値渡しで関数に引数を受け渡した場合,");
  35. swap_a(a,b);
  36. swap_print(a,b);
  37.  
  38. printf("参照渡しで関数に引数を受け渡した場合ー1,");
  39. swap_b(&a,&b);
  40. swap_print(a,b);
  41.  
  42. printf("参照渡しで関数に引数を受け渡した場合ー2,");
  43. swap_c(&a,&b);
  44. swap_print(a,b);
  45.  
  46. return(0);
  47. }
  48.  
Success #stdin #stdout 0.02s 1676KB
stdin
Standard input is empty
stdout
a = 100,b = 200
値渡しで関数に引数を受け渡した場合,a = 100,b = 200
参照渡しで関数に引数を受け渡した場合ー1,a = 200,b = 100
参照渡しで関数に引数を受け渡した場合ー2,a = 200,b = 100