fork download
  1. #include <stdio.h>
  2. int x;
  3. void mondai1(int b) {
  4. x = b;
  5. }
  6. void mondai2(void) {
  7. static int c = 10;
  8. x = c;
  9. c++;
  10. }
  11. int mondai3(int d) {
  12. x++;
  13. d++;
  14. return d;
  15. }
  16. int main(void) {
  17. printf("x = %d [G:グローバル変数には値が決められていない]\n", x);
  18. x = 101;
  19. printf("x = %d [G:前行で101が代入された]\n", x);
  20. mondai1(102);
  21. printf("x = %d [G:mondai1関数で102が代入された]\n", x);
  22. mondai2();
  23. mondai2();
  24. mondai2();
  25. printf("x = %d [G:mondai2関数で静的関数(ローカル変数)が定められ3回処理が行われたのちxに代入された]\n", x);
  26. for (int i = 103; i < 104; i++) {
  27. int x = i;
  28. printf("x = %d [L:前行の部分でfor文内、x=iと定められi=103だから]\n", x);
  29. x = mondai3(i);
  30. printf("x = %d [L:mondai3関数でdに103が代入され+1されて前行のxに戻ってきた]\n", x);
  31. }
  32. printf("x = %d [G:mondai3関数内で21行目のグローバル変数であるxに+1された]\n", x);
  33. return 0;
  34. }
Success #stdin #stdout 0.01s 5312KB
stdin
Standard input is empty
stdout
x = 0 [G:グローバル変数には値が決められていない]
x = 101 [G:前行で101が代入された]
x = 102 [G:mondai1関数で102が代入された]
x = 12 [G:mondai2関数で静的関数(ローカル変数)が定められ3回処理が行われたのちxに代入された]
x = 103 [L:前行の部分でfor文内、x=iと定められi=103だから]
x = 104 [L:mondai3関数でdに103が代入され+1されて前行のxに戻ってきた]
x = 13 [G:mondai3関数内で21行目のグローバル変数であるxに+1された]