#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[GS:グローバル変数なので初期値は0]\n" , x
); x=101;
printf("x=%d[GS:グローバル変数xに101を代入した]\n" , x
); mondai1(102);
printf("x=%d[GS:mondai1関数でxに102を代入した]\n" , x
); mondai2();
mondai2();
mondai2();
printf("x=%d[GS:mondai2関数を3回呼び出し、static変数cの値を順に代入した]\n" , x
); for (int i=103;i<104;i++){
int x=i;
printf("x=%d[LA:for文内のローカル変数xにiの値103を代入した]\n", x
); x=mondai3(i);
printf("x=%d[LA:mondai3関数の戻り値104をローカル変数xに代入した]\n" , x
); }
printf("x=%d[GS:mondai3関数でグローバル変数xを1増やした]\n" , x
); return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CmludCB4OwoKdm9pZCBtb25kYWkxIChpbnQgYil7Cgl4PWI7CgkKfQp2b2lkIG1vbmRhaTIgKHZvaWQpewoJIHN0YXRpYyBpbnQgYz0xMDsKCSB4PWM7CgkgYysrOwp9CmludCBtb25kYWkzKGludCBkKXsKCXgrKzsKCWQrKzsKCXJldHVybiBkOwp9CmludCBtYWluKHZvaWQpIHsKCXByaW50ZigieD0lZFtHUzrjgrDjg63jg7zjg5Djg6vlpInmlbDjgarjga7jgafliJ3mnJ/lgKTjga/vvJBdXG4iICwgeCk7Cgl4PTEwMTsKCXByaW50ZigieD0lZFtHUzrjgrDjg63jg7zjg5Djg6vlpInmlbB444GrMTAx44KS5Luj5YWl44GX44GfXVxuIiAsIHgpOwoJbW9uZGFpMSgxMDIpOwoJcHJpbnRmKCJ4PSVkW0dTOm1vbmRhaTHplqLmlbDjgad444GrMTAy44KS5Luj5YWl44GX44GfXVxuIiAsIHgpOwoJbW9uZGFpMigpOwoJbW9uZGFpMigpOwoJbW9uZGFpMigpOwoJcHJpbnRmKCJ4PSVkW0dTOm1vbmRhaTLplqLmlbDjgpIz5Zue5ZG844Gz5Ye644GX44CBc3RhdGlj5aSJ5pWwY+OBruWApOOCkumghuOBq+S7o+WFpeOBl+OBn11cbiIgLCB4KTsKCWZvciAoaW50IGk9MTAzO2k8MTA0O2krKyl7CgkJaW50IHg9aTsKCQlwcmludGYoIng9JWRbTEE6Zm9y5paH5YaF44Gu44Ot44O844Kr44Or5aSJ5pWweOOBq2njga7lgKQxMDPjgpLku6PlhaXjgZfjgZ9dXG4iLCB4KTsKCQl4PW1vbmRhaTMoaSk7CgkJcHJpbnRmKCJ4PSVkW0xBOm1vbmRhaTPplqLmlbDjga7miLvjgorlgKQxMDTjgpLjg63jg7zjgqvjg6vlpInmlbB444Gr5Luj5YWl44GX44GfXVxuIiAsIHgpOwoJfQoJCXByaW50ZigieD0lZFtHUzptb25kYWkz6Zai5pWw44Gn44Kw44Ot44O844OQ44Or5aSJ5pWweOOCkjHlopfjgoTjgZfjgZ9dXG4iICwgeCk7CgkJcmV0dXJuIDA7CgkJCn0KCg==