fork download
  1. #include <stdio.h>
  2. int x;
  3.  
  4. void mondai1(int b) {
  5. x = b;
  6. }
  7.  
  8. void mondai2(void) {
  9. static int c = 10;
  10. x = c;
  11. c++;
  12. }
  13.  
  14. int mondai3(int d) {
  15. x++;
  16. d++;
  17. return d;
  18. }
  19.  
  20. int main(void) {
  21. printf("x = %d[G:初期の値]\n", x);
  22. x = 101;
  23. printf("x = %d[G:前行でx=101を代入]\n", x);
  24.  
  25. mondai1(102);
  26. printf("x = %d[G:前行で関数mondai1呼び出して、x=102を代入]\n", x);
  27.  
  28. mondai2();
  29. mondai2();
  30. mondai2();
  31. printf("x = %d[G:前3行で関数mondai2を3回呼び出して戻り値を代入、x=cの後にc++されているから戻り値は+2]\n", x);
  32.  
  33. for (int i = 103; i < 104; i++) {
  34. int x = i;
  35. printf("x = %d[L:前行で変数iを代入した値]\n", x);
  36. x = mondai3(i);
  37. printf("x = %d[L:前行で関数mondai3を呼び出して戻り値を代入、戻り値+1]\n", x);
  38. }
  39.  
  40. printf("x = %d[G:31行目の後に関数mondai3を1回実行した値]\n", x);
  41. return 0;
  42. }
Success #stdin #stdout 0.01s 5320KB
stdin
Standard input is empty
stdout
x = 0[G:初期の値]
x = 101[G:前行でx=101を代入]
x = 102[G:前行で関数mondai1呼び出して、x=102を代入]
x = 12[G:前3行で関数mondai2を3回呼び出して戻り値を代入、x=cの後にc++されているから戻り値は+2]
x = 103[L:前行で変数iを代入した値]
x = 104[L:前行で関数mondai3を呼び出して戻り値を代入、戻り値+1]
x = 13[G:31行目の後に関数mondai3を1回実行した値]