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