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 [Gのxの初期値は0なので0を表示]\n", x); // (1)
  23. x = 101;
  24. printf("x = %d [前の行でxに101を代入したので101を表示]\n", x); // (2)
  25.  
  26. mondai1(102);
  27. printf("x = %d [102がmondai1関数の引数bに102が代入され、この関数内で102がxに代入されたため102を表示]\n", x); // (3)
  28.  
  29. mondai2();
  30. mondai2();
  31. mondai2();
  32. printf("x = %d [mondai2関数が3回実行され、static型なので加算が自動的に行われ、最終的にxに代入した12を表示]\n", x); // (4)
  33. for (int i = 103; i < 104; i++){
  34. int x = i;
  35. printf("x = %d [前の行でLのxにiが代入されたので、その前にiに代入された103を表示]\n", x); // (5)
  36. x = mondai3(i);
  37. printf("x = %d [mondai3関数内で、iが引数dに代入され、+1加算された状態で返されるので104を表示]\n", x); // (6)
  38. }
  39.  
  40. printf("x = %d [前の行のmondai3関数内で、Gのxも+1加算されているので13を表示]\n", x); // (7)
  41. return 0;
  42. }
  43.  
Success #stdin #stdout 0.01s 5284KB
stdin
Standard input is empty
stdout
x = 0 [Gのxの初期値は0なので0を表示]
x = 101 [前の行でxに101を代入したので101を表示]
x = 102 [102がmondai1関数の引数bに102が代入され、この関数内で102がxに代入されたため102を表示]
x = 12 [mondai2関数が3回実行され、static型なので加算が自動的に行われ、最終的にxに代入した12を表示]
x = 103 [前の行でLのxにiが代入されたので、その前にiに代入された103を表示]
x = 104 [mondai3関数内で、iが引数dに代入され、+1加算された状態で返されるので104を表示]
x = 13 [前の行のmondai3関数内で、Gのxも+1加算されているので13を表示]