#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: 前行で101を代入した]\n " , x
) ; mondai1( 102 ) ;
printf ( "x = %d [GS: mondai1で102を代入した]\n " , x
) ; mondai2( ) ;
mondai2( ) ;
mondai2( ) ;
printf ( "x = %d [GS: mondai2を3回呼び出し最後に12を代入した]\n " , x
) ; for ( int i= 103 ; i< 104 ; i++ ) {
int x = i;
printf ( "x = %d [LA: ローカル変数xをiの値103で初期化した]\n " , x
) ; x = mondai3( i) ;
printf ( "x = %d [LA: mondai3が返した104を代入した]\n " , x
) ; }
printf ( "x = %d [GS: mondai3のx++により12から13になった]\n " , x
) ; return 0 ;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CmludCB4Owp2b2lkIG1vbmRhaTEoaW50IGIpewoJeCA9IGI7Cn0Kdm9pZCBtb25kYWkyKHZvaWQpewoJc3RhdGljIGludCBjID0xMDsKCXggPWM7CgljKys7Cn0KaW50IG1vbmRhaTMoaW50IGQpewoJeCsrOwoJZCsrOwoJcmV0dXJuIGQ7Cn0KaW50IG1haW4odm9pZCkgewoJcHJpbnRmKCJ4ID0gJWQgW0dTOiDjgrDjg63jg7zjg5Djg6vlpInmlbDjgarjga7jgacw44Gn5Yid5pyf5YyWXVxuIiwgeCk7Cgl4ID0gMTAxOwoJcHJpbnRmKCJ4ID0gJWQgW0dTOiDliY3ooYzjgacxMDHjgpLku6PlhaXjgZfjgZ9dXG4iLCB4KTsKICAgIG1vbmRhaTEoMTAyKTsKICAgIHByaW50ZigieCA9ICVkIFtHUzogbW9uZGFpMeOBpzEwMuOCkuS7o+WFpeOBl+OBn11cbiIsIHgpOwoJbW9uZGFpMigpOwoJbW9uZGFpMigpOwoJbW9uZGFpMigpOwoJcHJpbnRmKCJ4ID0gJWQgW0dTOiBtb25kYWky44KSM+WbnuWRvOOBs+WHuuOBl+acgOW+jOOBqzEy44KS5Luj5YWl44GX44GfXVxuIiwgeCk7Cglmb3IgKGludCBpPTEwMztpPDEwNDtpKyspewoJCWludCB4ID0gaTsKCQlwcmludGYoInggPSAlZCBbTEE6IOODreODvOOCq+ODq+WkieaVsHjjgpJp44Gu5YCkMTAz44Gn5Yid5pyf5YyW44GX44GfXVxuIiwgeCk7CgkJeCA9IG1vbmRhaTMoaSk7CgkJcHJpbnRmKCJ4ID0gJWQgW0xBOiBtb25kYWkz44GM6L+U44GX44GfMTA044KS5Luj5YWl44GX44GfXVxuIiwgeCk7Cgl9CglwcmludGYoInggPSAlZCBbR1M6IG1vbmRhaTPjga54KyvjgavjgojjgooxMuOBi+OCiTEz44Gr44Gq44Gj44GfXVxuIiwgeCk7CglyZXR1cm4gMDsKfQoJ