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 [GS:グローバル変数は自動的に0で初期化されるため]\n",x);
  18. x=101;
  19. printf("x=%d [GS:18行目に101を代入したため]\n",x);
  20. mondai1(102);
  21. printf("x=%d [GS:mondai1 4行目で102が代入されたため]\n",x);
  22. mondai2();
  23. mondai2();
  24. mondai2();
  25. printf("x=%d [GS:mondai2が3回呼ばれ、静的変数c(10→11→12)の値が8行目で代入されたため]\n",x);
  26. for (int i=103;i<104;i++){
  27. int x=i;
  28. printf("x=%d [LA:forブロック内で定義されたローカル自動変数x(103) 27行目を参照したため]\n",x);
  29. x=mondai3(i);
  30. printf("x=%d [LA:mondai3で足されて戻り値(104)がローカル自動変数xに代入されたため]\n",x);
  31. }
  32. printf("x=%d [GS:forスコープを出てグローバル変数x(mondai3内で+1されて13)12行目を参照したため]\n",x);
  33. return 0;
  34. }
Success #stdin #stdout 0s 5316KB
stdin
Standard input is empty
stdout
x=0 [GS:グローバル変数は自動的に0で初期化されるため]
x=101 [GS:18行目に101を代入したため]
x=102 [GS:mondai1 4行目で102が代入されたため]
x=12 [GS:mondai2が3回呼ばれ、静的変数c(10→11→12)の値が8行目で代入されたため]
x=103 [LA:forブロック内で定義されたローカル自動変数x(103) 27行目を参照したため]
x=104 [LA:mondai3で足されて戻り値(104)がローカル自動変数xに代入されたため]
x=13 [GS:forスコープを出てグローバル変数x(mondai3内で+1されて13)12行目を参照したため]