#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 [グローバル変数の初期値]¥n", x
); x = 101;
printf("x = %d [xに101を代入]¥n", x
); mondai1(102);
printf("x = %d [mondai1でxに102を代入]¥n", x
); mondai2();
mondai2();
mondai2();
printf("x = %d [mondai2を3回繰り返し、xは最終的に12]¥n", x
); for (int i = 103; i<104; i++){
int x = i; // ループ内だけのローカル変数
printf("x = %d [ループ内のローカル変数xにi(103)を代入]¥n", x
); x = mondai3(i);
printf("x = %d [mondai3の戻り値(104)をローカル変数xに代入]¥n", x
) ;
}
printf("x = %d [グローバル変数xの値 (mondai3内で13に更新済)]¥n", x
); return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CgppbnQgeDsKCnZvaWQgbW9uZGFpMShpbnQgYil7CiAgICB4ID0gYjsKfQoKdm9pZCBtb25kYWkyKHZvaWQpewogICAgc3RhdGljIGludCBjID0gMTA7CiAgICB4ID0gYzsKICAgIGMrKzsKfQoKaW50IG1vbmRhaTMoaW50IGQpewogICAgeCsrOwogICAgZCsrOwogICAgcmV0dXJuIGQ7Cn0KCmludCBtYWluKHZvaWQpewogICAgcHJpbnRmKCJ4ID0gJWQgW+OCsOODreODvOODkOODq+WkieaVsOOBruWIneacn+WApF3CpW4iLCB4KTsKICAgIHggPSAxMDE7CiAgICBwcmludGYoInggPSAlZCBbeOOBqzEwMeOCkuS7o+WFpV3CpW4iLCB4KTsKICAgIG1vbmRhaTEoMTAyKTsKICAgIHByaW50ZigieCA9ICVkIFttb25kYWkx44GneOOBqzEwMuOCkuS7o+WFpV3CpW4iLCB4KTsKICAgIG1vbmRhaTIoKTsKICAgIG1vbmRhaTIoKTsKICAgIG1vbmRhaTIoKTsKICAgIHByaW50ZigieCA9ICVkIFttb25kYWky44KSM+Wbnue5sOOCiui/lOOBl+OAgXjjga/mnIDntYLnmoTjgasxMl3CpW4iLCB4KTsKICAgIGZvciAoaW50IGkgPSAxMDM7IGk8MTA0OyBpKyspewogICAgICAgIGludCB4ID0gaTsgLy8g44Or44O844OX5YaF44Gg44GR44Gu44Ot44O844Kr44Or5aSJ5pWwCiAgICAgICAgcHJpbnRmKCJ4ID0gJWQgW+ODq+ODvOODl+WGheOBruODreODvOOCq+ODq+WkieaVsHjjgatpKDEwMynjgpLku6PlhaVdwqVuIiwgeCk7CiAgICAgICAgeCA9IG1vbmRhaTMoaSk7CiAgICAgICAgcHJpbnRmKCJ4ID0gJWQgW21vbmRhaTPjga7miLvjgorlgKQoMTA0KeOCkuODreODvOOCq+ODq+WkieaVsHjjgavku6PlhaVdwqVuIiwgeCkKOwogICAgfQogICAgcHJpbnRmKCJ4ID0gJWQgW+OCsOODreODvOODkOODq+WkieaVsHjjga7lgKQgKG1vbmRhaTPlhoXjgacxM+OBq+abtOaWsOa4iCldwqVuIiwgeCk7CiAgICByZXR1cm4gMDsKfQoK