#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) {
// your code goes here
printf("x=%d[G: xは0で初期化される]\n",x
); x=101;
printf("x=%d[G: 前行で101を代入]\n",x
); mondai1(102);
printf("x=%d[G: 前行で102を代入]\n",x
); mondai2();
mondai2();
mondai2();
printf("x=%d[G: c++を3回くりかえすため]\n",x
); for(int i=103;i<104;i++){
int x=i;
printf("x=%d[L: for文の最初に103で初期化]\n",x
); x=mondai3(i);
printf("x=%d[L: 変数内でxを1足す]\n",x
); }
printf("x=%d[G: 直前のmondai3がfor文を抜けて、グローバルのxが直前から+1される]\n",x
);
return 0;
}
CiNpbmNsdWRlIDxzdGRpby5oPgppbnQgeDsKdm9pZCBtb25kYWkxKGludCBiKXsKCXg9YjsKfQp2b2lkIG1vbmRhaTIodm9pZCl7CglzdGF0aWMgaW50IGMgPSAxMDsKCXg9YzsKCWMrKzsKfQppbnQgbW9uZGFpMyAoaW50IGQpewoJeCsrOwoJZCsrOwoJcmV0dXJuIGQ7Cn0KaW50IG1haW4odm9pZCkgewoJLy8geW91ciBjb2RlIGdvZXMgaGVyZQoJcHJpbnRmKCJ4PSVkW0c6IHjjga8w44Gn5Yid5pyf5YyW44GV44KM44KLXVxuIix4KTsKCXg9MTAxOwoJcHJpbnRmKCJ4PSVkW0c6IOWJjeihjOOBpzEwMeOCkuS7o+WFpV1cbiIseCk7Cgltb25kYWkxKDEwMik7CglwcmludGYoIng9JWRbRzog5YmN6KGM44GnMTAy44KS5Luj5YWlXVxuIix4KTsKCW1vbmRhaTIoKTsKCW1vbmRhaTIoKTsKCW1vbmRhaTIoKTsKCXByaW50ZigieD0lZFtHOiBjKyvjgpIz5Zue44GP44KK44GL44GI44GZ44Gf44KBXVxuIix4KTsKCWZvcihpbnQgaT0xMDM7aTwxMDQ7aSsrKXsKCQlpbnQgeD1pOwoJCXByaW50ZigieD0lZFtMOiBmb3Lmlofjga7mnIDliJ3jgasxMDPjgafliJ3mnJ/ljJZdXG4iLHgpOwoJCXg9bW9uZGFpMyhpKTsKCQlwcmludGYoIng9JWRbTDog5aSJ5pWw5YaF44GneOOCkjHotrPjgZldXG4iLHgpOwoJfQoJcHJpbnRmKCJ4PSVkW0c6IOebtOWJjeOBrm1vbmRhaTPjgYxmb3LmlofjgpLmipzjgZHjgabjgIHjgrDjg63jg7zjg5Djg6vjga5444GM55u05YmN44GL44KJKzHjgZXjgozjgotdXG4iLHgpOwoKCXJldHVybiAwOwp9Cg==