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. printf("x = %d [GS: 3行目で宣言されたグローバル変数なので0で初期化]\n", x);
  23.  
  24. x = 101;
  25. printf("x = %d [GS: 24行目で101を代入]\n", x);
  26.  
  27. mondai1(102);
  28. printf("x = %d [GS: 27行目mondai1で引数102をグローバル変数xに代入]\n", x);
  29.  
  30. mondai2();
  31. mondai2();
  32. mondai2();
  33. printf("x = %d [GS: 30~32行目静的変数cが呼び出しごとに増加し、3回目に12を代入]\n", x);
  34.  
  35. for(int i = 103; i < 104; i++){
  36. int x = i;
  37. printf("x = %d [LA: 36行目でローカル変数xをiの値103で初期化]\n", x);
  38.  
  39. x = mondai3(i);
  40. printf("x = %d [LA: 39行目でmondai3でdを103から17行目で104に増加させ、その戻り値を代入]\n", x);
  41. }
  42.  
  43. printf("x = %d [GS: 39行目でmondai3内の16行目のx++でグローバル変数xが12から13に増加]\n", x);
  44.  
  45. return 0;
  46. }
  47.  
Success #stdin #stdout 0s 5320KB
stdin
Standard input is empty
stdout
x = 0 [GS: 3行目で宣言されたグローバル変数なので0で初期化]
x = 101 [GS: 24行目で101を代入]
x = 102 [GS: 27行目mondai1で引数102をグローバル変数xに代入]
x = 12 [GS:  30~32行目静的変数cが呼び出しごとに増加し、3回目に12を代入]
x = 103 [LA: 36行目でローカル変数xをiの値103で初期化]
x = 104 [LA: 39行目でmondai3でdを103から17行目で104に増加させ、その戻り値を代入]
x = 13 [GS: 39行目でmondai3内の16行目のx++でグローバル変数xが12から13に増加]