#include <stdio.h>
int x;
void mondai1(int b){
x=b;
}
void mondai2(void){
static int c=10;
x=c;
c++;
}
int mondai3(int d){
x++;
d++;
return d;
}
int main(void) {
printf("x=%d [G:xの初期値がでるため]\n",x
); x=101;
printf("x=%d [G:前文18行目よりxに101が代入されるため]\n",x
); mondai1(102);
printf("x=%d [G:20行目で関数mondai1が呼び出され、102が代入されるため]\n",x
); mondai2();
mondai2();
mondai2();
printf("x=%d [G:22~24行目で関数mondai2を呼び出し、ststic関数でxが初期化されずc++を3度繰り返す]\n",x
); for(int i=103;i<104;i++){
int x=i;
printf("x=%d [L:26行目のfor文から、まずiの初期値がxに代入されるため]\n",x
); x=mondai3(i);
printf("x=%d [L:for文内で29行目に関数mondai3が呼び出され、i=103が代入されているからd++より]\n",x
); }
printf("x=%d [G:mondai3より維持されていた12に1足されて13になるため]\n",x
); return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CmludCB4Owp2b2lkIG1vbmRhaTEoaW50IGIpewoJeD1iOwp9CnZvaWQgbW9uZGFpMih2b2lkKXsKCXN0YXRpYyBpbnQgYz0xMDsKCXg9YzsKCWMrKzsKfQppbnQgbW9uZGFpMyhpbnQgZCl7Cgl4Kys7CglkKys7CglyZXR1cm4gZDsKfQppbnQgbWFpbih2b2lkKSB7CglwcmludGYoIng9JWQgW0c6772Y44Gu5Yid5pyf5YCk44GM44Gn44KL44Gf44KBXVxuIix4KTsKCXg9MTAxOwoJcHJpbnRmKCJ4PSVkIFtHOuWJjeaWhzE46KGM55uu44KI44KK772Y44GrMTAx44GM5Luj5YWl44GV44KM44KL44Gf44KBXVxuIix4KTsKCW1vbmRhaTEoMTAyKTsKCXByaW50ZigieD0lZCBbRzoyMOihjOebruOBp+mWouaVsG1vbmRhaTHjgYzlkbzjgbPlh7rjgZXjgozjgIExMDLjgYzku6PlhaXjgZXjgozjgovjgZ/jgoFdXG4iLHgpOwoJbW9uZGFpMigpOwoJbW9uZGFpMigpOwoJbW9uZGFpMigpOwoJcHJpbnRmKCJ4PSVkIFtHOjIyfjI06KGM55uu44Gn6Zai5pWwbW9uZGFpMuOCkuWRvOOBs+WHuuOBl+OAgXN0c3RpY+mWouaVsOOBp3jjgYzliJ3mnJ/ljJbjgZXjgozjgZpjKyvjgpLvvJPluqbnubDjgorov5TjgZldXG4iLHgpOwoJZm9yKGludCBpPTEwMztpPDEwNDtpKyspewoJCWludCB4PWk7CgkJcHJpbnRmKCJ4PSVkIFtMOjI26KGM55uu44GuZm9y5paH44GL44KJ44CB44G+44GaaeOBruWIneacn+WApOOBjHjjgavku6PlhaXjgZXjgozjgovjgZ/jgoFdXG4iLHgpOwoJCXg9bW9uZGFpMyhpKTsKCQlwcmludGYoIng9JWQgW0w6Zm9y5paH5YaF44GnMjnooYznm67jgavplqLmlbBtb25kYWkz44GM5ZG844Gz5Ye644GV44KM44CBaT0xMDPjgYzku6PlhaXjgZXjgozjgabjgYTjgovjgYvjgolkKyvjgojjgopdXG4iLHgpOwoJfQoJcHJpbnRmKCJ4PSVkIFtHOm1vbmRhaTPjgojjgorntq3mjIHjgZXjgozjgabjgYTjgZ8xMuOBqzHotrPjgZXjgozjgaYxM+OBq+OBquOCi+OBn+OCgV1cbiIseCk7CnJldHVybiAwOwp9