#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:2行目でグローバル変数は0で初期化される]\n",x
); x=101;
printf("x=%d[GS:18行目で101を代入した]\n",x
); mondai1(102);
printf("x=%d[GS:20行目のmondai1で引数102をグローバル変数xに代入した]\n",x
); mondai2();
mondai2();
mondai2();
printf("x=%d[GS:22~24行目でstatic変数cが3回目で12になり、その値を代入した]\n",x
); for(int i=103;i<104;i++){
int x=i;
printf("x=%d[LA:27行目でfor文のローカル変数xにiを代入して103を代入した]\n",x
); x=mondai3(i);
printf("x=%d[LA:29行目でmondai3の戻り値104をローカル変数xに代入した]\n",x
); }
printf("x=%d[GS:29行目でfor文が終わるとローカル変数が消え、29行目でmondai3でグローバル変数xが表示される]\n",x
); return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CmludCB4Owp2b2lkIG1vbmRhaTEoaW50IGIpewoJeD1iOwp9CnZvaWQgbW9uZGFpMih2b2lkKXsKCXN0YXRpYyBpbnQgYz0xMDsKCXg9YzsKCWMrKzsKfQppbnQgbW9uZGFpMyhpbnQgZCl7Cgl4Kys7CglkKys7CglyZXR1cm4gZDsKfQppbnQgbWFpbih2b2lkKXsKCXByaW50ZigieD0lZFtHUzoy6KGM55uu44Gn44Kw44Ot44O844OQ44Or5aSJ5pWw44GvMOOBp+WIneacn+WMluOBleOCjOOCi11cbiIseCk7Cgl4PTEwMTsKCXByaW50ZigieD0lZFtHUzoxOOihjOebruOBpzEwMeOCkuS7o+WFpeOBl+OBn11cbiIseCk7Cgltb25kYWkxKDEwMik7CglwcmludGYoIng9JWRbR1M6MjDooYznm67jga5tb25kYWkx44Gn5byV5pWwMTAy44KS44Kw44Ot44O844OQ44Or5aSJ5pWweOOBq+S7o+WFpeOBl+OBn11cbiIseCk7Cgltb25kYWkyKCk7Cgltb25kYWkyKCk7Cgltb25kYWkyKCk7CglwcmludGYoIng9JWRbR1M6MjLvvZ4yNOihjOebruOBp3N0YXRpY+WkieaVsGPjgYwz5Zue55uu44GnMTLjgavjgarjgorjgIHjgZ3jga7lgKTjgpLku6PlhaXjgZfjgZ9dXG4iLHgpOwoJZm9yKGludCBpPTEwMztpPDEwNDtpKyspewoJCWludCB4PWk7CgkJcHJpbnRmKCJ4PSVkW0xBOjI36KGM55uu44GnZm9y5paH44Gu44Ot44O844Kr44Or5aSJ5pWweOOBq2njgpLku6PlhaXjgZfjgaYxMDPjgpLku6PlhaXjgZfjgZ9dXG4iLHgpOwoJCXg9bW9uZGFpMyhpKTsKCQlwcmludGYoIng9JWRbTEE6MjnooYznm67jgadtb25kYWkz44Gu5oi744KK5YCkMTA044KS44Ot44O844Kr44Or5aSJ5pWweOOBq+S7o+WFpeOBl+OBn11cbiIseCk7Cgl9CglwcmludGYoIng9JWRbR1M6MjnooYznm67jgadmb3LmlofjgYzntYLjgo/jgovjgajjg63jg7zjgqvjg6vlpInmlbDjgYzmtojjgYjjgIEyOeihjOebruOBp21vbmRhaTPjgafjgrDjg63jg7zjg5Djg6vlpInmlbB444GM6KGo56S644GV44KM44KLXVxuIix4KTsKCXJldHVybiAwOwp9Cg==