#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:2行目で初期化した値]\n",x
); x=101;
printf("x=%d [L:前行で値101を代入]\n",x
); mondai1(102);
printf("x=%d [L:前行で関数mondai1に102を代入して1回呼び出して戻り値を代入,戻り値は実引数x]\n",x
); mondai2();
mondai2();
mondai2();
printf("x=%d [L:前3行で関数mondai2を3回呼び出して戻り値を代入,先にcをxに代入してからcを+1するので戻り値は実引数xに2回+1]\n",x
); for(int i=103;i<104;i++){
int x=i;
printf("x=%d [L:前行で値103を代入]\n",x
); x=mondai3(i);
printf("x=%d [L:前行で関数mondai3を1回呼び出して戻り値を代入,戻り値は実引数xに1回+1]\n",x
); }
printf("x=%d [L:29行目で関数mondai3を1回呼び出して,xの値を+1]\n",x
); return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CgppbnQgeDsKdm9pZCBtb25kYWkxKGludCBiKXsKCXg9YjsKfQp2b2lkIG1vbmRhaTIodm9pZCl7CglzdGF0aWMgaW50IGM9MTA7Cgl4PWM7CgljKys7Cn0KaW50IG1vbmRhaTMoaW50IGQpewoJeCsrOwoJZCsrOwoJcmV0dXJuIGQ7Cn0KaW50IG1haW4odm9pZCl7CglwcmludGYoIng9JWQgW0c6MuihjOebruOBp+WIneacn+WMluOBl+OBn+WApF1cbiIseCk7Cgl4PTEwMTsKCXByaW50ZigieD0lZCBbTDrliY3ooYzjgaflgKQxMDHjgpLku6PlhaVdXG4iLHgpOwoJbW9uZGFpMSgxMDIpOwoJcHJpbnRmKCJ4PSVkIFtMOuWJjeihjOOBp+mWouaVsG1vbmRhaTHjgasxMDLjgpLku6PlhaXjgZfjgaYx5Zue5ZG844Gz5Ye644GX44Gm5oi744KK5YCk44KS5Luj5YWlLOaIu+OCiuWApOOBr+Wun+W8leaVsHhdXG4iLHgpOwoJbW9uZGFpMigpOwoJbW9uZGFpMigpOwoJbW9uZGFpMigpOwoJcHJpbnRmKCJ4PSVkIFtMOuWJjTPooYzjgafplqLmlbBtb25kYWky44KSM+WbnuWRvOOBs+WHuuOBl+OBpuaIu+OCiuWApOOCkuS7o+WFpSzlhYjjgatj44KSeOOBq+S7o+WFpeOBl+OBpuOBi+OCiWPjgpIrMeOBmeOCi+OBruOBp+aIu+OCiuWApOOBr+Wun+W8leaVsHjjgasy5ZueKzFdXG4iLHgpOwoJZm9yKGludCBpPTEwMztpPDEwNDtpKyspewoJCWludCB4PWk7CgkJcHJpbnRmKCJ4PSVkIFtMOuWJjeihjOOBp+WApDEwM+OCkuS7o+WFpV1cbiIseCk7CgkJeD1tb25kYWkzKGkpOwoJCXByaW50ZigieD0lZCBbTDrliY3ooYzjgafplqLmlbBtb25kYWkz44KSMeWbnuWRvOOBs+WHuuOBl+OBpuaIu+OCiuWApOOCkuS7o+WFpSzmiLvjgorlgKTjga/lrp/lvJXmlbB444GrMeWbnisxXVxuIix4KTsKCX0KCXByaW50ZigieD0lZCBbTDoyOeihjOebruOBp+mWouaVsG1vbmRhaTPjgpIx5Zue5ZG844Gz5Ye644GX44GmLHjjga7lgKTjgpIrMV1cbiIseCk7CglyZXR1cm4gMDsKfQoK