#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行目のxの値が指定されていないので、グローバル変数が初期化される]\n " , x
) ; x = 101 ;
printf ( "x = %d [GS:18行で101を代入した]\n " , x
) ; mondai1( 102 ) ;
printf ( "x = %d [GS:20行目で関数mondai1を呼び出し、102を代入]\n " , x
) ; mondai2( ) ;
mondai2( ) ;
mondai2( ) ;
printf ( "x = %d [GS:22行目柄関数mondai2を3回呼び出し、10→11→12になり、12を代入]\n " , x
) ; for ( int i = 103 ; i< 104 ; i++ ) {
int x = i;
printf ( "x = %d [LA:27行で103を代入]\n " , x
) ; x = mondai3( i) ;
printf ( "x = %d [LA:29行目で関数mondai3を呼び出し、++した]\n " , x
) ; }
printf ( "x = %d [GS:29行目で関数mondai3が呼び出され、グローバル関数が++した]\n " , x
) ; return 0 ;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CmludCB4Owp2b2lkIG1vbmRhaTEoaW50IGIpewoJeCA9IGI7Cn0Kdm9pZCBtb25kYWkyKHZvaWQpewoJc3RhdGljIGludCBjID0gMTA7Cgl4ID0gYzsKCWMrKzsKfQppbnQgbW9uZGFpMyhpbnQgZCl7Cgl4Kys7CglkKys7CglyZXR1cm4gZDsKfQppbnQgbWFpbih2b2lkKSB7CglwcmludGYoInggPSAlZCBbR1M6MuihjOebruOBrnjjga7lgKTjgYzmjIflrprjgZXjgozjgabjgYTjgarjgYTjga7jgafjgIHjgrDjg63jg7zjg5Djg6vlpInmlbDjgYzliJ3mnJ/ljJbjgZXjgozjgotdXG4iLHgpOwoJeCA9IDEwMTsKCXByaW50ZigieCA9ICVkIFtHUzoxOOihjOOBpzEwMeOCkuS7o+WFpeOBl+OBn11cbiIseCk7Cgltb25kYWkxKDEwMik7CglwcmludGYoInggPSAlZCBbR1M6MjDooYznm67jgafplqLmlbBtb25kYWkx44KS5ZG844Gz5Ye644GX44CBMTAy44KS5Luj5YWlXVxuIix4KTsKCW1vbmRhaTIoKTsKCW1vbmRhaTIoKTsKCW1vbmRhaTIoKTsKCXByaW50ZigieCA9ICVkIFtHUzoyMuihjOebruafhOmWouaVsG1vbmRhaTLjgpIz5Zue5ZG844Gz5Ye644GX44CBMTDihpIxMeKGkjEy44Gr44Gq44KK44CBMTLjgpLku6PlhaVdXG4iLHgpOwoJZm9yKGludCBpID0gMTAzO2k8MTA0O2krKyl7CgkJaW50IHggPSBpOwoJCXByaW50ZigieCA9ICVkIFtMQToyN+ihjOOBpzEwM+OCkuS7o+WFpV1cbiIseCk7CgkJeCA9IG1vbmRhaTMoaSk7CgkJcHJpbnRmKCJ4ID0gJWTjgIBbTEE6MjnooYznm67jgafplqLmlbBtb25kYWkz44KS5ZG844Gz5Ye644GX44CBKyvjgZfjgZ9dXG4iLHgpOwoJfQoJcHJpbnRmKCJ4ID0gJWQgW0dTOjI56KGM55uu44Gn6Zai5pWwbW9uZGFpM+OBjOWRvOOBs+WHuuOBleOCjOOAgeOCsOODreODvOODkOODq+mWouaVsOOBjCsr44GX44GfXVxuIix4KTsKCXJldHVybiAwOwp9Cg==