fork download
  1. #include <stdio.h>
  2.  
  3. int x;
  4.  
  5. void mondai1(int b){
  6. x = b;
  7. }
  8.  
  9. void mondai2(void){
  10. static int c = 10;
  11. x = c;
  12. c++;
  13. }
  14.  
  15. int mondai3(int d){
  16. x++;
  17. d++;
  18. return d;
  19. }
  20.  
  21. int main(void){
  22.  
  23. printf("x = %d [G: グローバル変数は自動的に0で初期化される]\n", x);
  24.  
  25. x = 101;
  26. printf("x = %d [G: xに101を代入した]\n", x);
  27.  
  28. mondai1(102);
  29. printf("x = %d [G: mondai1でxに102を代入した]\n", x);
  30.  
  31. mondai2();
  32. mondai2();
  33. mondai2();
  34. printf("x = %d [GS: static変数cが10→11→12となり、その値がxに代入された]\n", x);
  35.  
  36. for(int i = 103; i < 104; i++){
  37.  
  38. int x = i;
  39.  
  40. printf("x = %d [L: ローカル変数xにi(103)を代入した]\n", x);
  41.  
  42. x = mondai3(i);
  43.  
  44. printf("x = %d [L: mondai3でdを1増やし、戻り値104をローカル変数xに代入した]\n", x);
  45. }
  46.  
  47. printf("x = %d [G: mondai3でグローバル変数xが12から13に増加した]\n", x);
  48.  
  49. return 0;
  50. }
Success #stdin #stdout 0.01s 5320KB
stdin
Standard input is empty
stdout
x = 0 [G: グローバル変数は自動的に0で初期化される]
x = 101 [G: xに101を代入した]
x = 102 [G: mondai1でxに102を代入した]
x = 12 [GS: static変数cが10→11→12となり、その値がxに代入された]
x = 103 [L: ローカル変数xにi(103)を代入した]
x = 104 [L: mondai3でdを1増やし、戻り値104をローカル変数xに代入した]
x = 13 [G: mondai3でグローバル変数xが12から13に増加した]