#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)内で102を代入したため]\n " , x
) ;
mondai2( ) ;
mondai2( ) ;
mondai2( ) ;
printf ( "x = %d [GS: 静的変数c(初期値10)がmondai2の3回呼び出しで+1ずつ増え12が代入されたため]\n " , x
) ;
for ( int i = 103 ; i < 104 ; i++ ) {
int x = i;
printf ( "x = %d [LA: 同名のローカル変数x(値103)がグローバル変数を覆い隠すため]\n " , x
) ; x = mondai3( i) ;
printf ( "x = %d [LA: mondai3(103)の戻り値104がローカル変数xに代入されたため]\n " , x
) ; }
printf ( "x = %d [GS: forブロックを抜けグローバル変数x(mondai3内で+1された13)を参照するため]\n " , x
) ; return 0 ;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CgppbnQgeDsKCnZvaWQgbW9uZGFpMShpbnQgYikgewogICAgeCA9IGI7Cn0KCnZvaWQgbW9uZGFpMih2b2lkKSB7CiAgICBzdGF0aWMgaW50IGMgPSAxMDsKICAgIHggPSBjOwogICAgYysrOwp9CgppbnQgbW9uZGFpMyhpbnQgZCkgewogICAgeCsrOwogICAgZCsrOwogICAgcmV0dXJuIGQ7Cn0KCmludCBtYWluKHZvaWQpIHsKICAgIHByaW50ZigieCA9ICVkIFtHUzog5pyq5Yid5pyf5YyW44Gu44Kw44Ot44O844OQ44Or5aSJ5pWw44GvMOOBp+WIneacn+WMluOBleOCjOOCi+OBn+OCgV1cbiIsIHgpOwogICAgeCA9IDEwMTsKICAgIHByaW50ZigieCA9ICVkIFtHUzog5YmN6KGM44GnMTAx44KS5Luj5YWl44GX44Gf44Gf44KBXVxuIiwgeCk7CiAgICAKICAgIG1vbmRhaTEoMTAyKTsKICAgIHByaW50ZigieCA9ICVkIFtHUzptb25kYWkxKDEwMinlhoXjgacxMDLjgpLku6PlhaXjgZfjgZ/jgZ/jgoFdXG4iLCB4KTsKICAgIAogICAgbW9uZGFpMigpOwogICAgbW9uZGFpMigpOwogICAgbW9uZGFpMigpOwogICAgcHJpbnRmKCJ4ID0gJWQgW0dTOiDpnZnnmoTlpInmlbBjKOWIneacn+WApDEwKeOBjG1vbmRhaTLjga4z5Zue5ZG844Gz5Ye644GX44GnKzHjgZrjgaTlopfjgYgxMuOBjOS7o+WFpeOBleOCjOOBn+OBn+OCgV1cbiIsIHgpOwogICAgCiAgICBmb3IgKGludCBpID0gMTAzOyBpIDwgMTA0OyBpKyspIHsKICAgICAgICBpbnQgeCA9IGk7CiAgICAgICAgcHJpbnRmKCJ4ID0gJWQgW0xBOiDlkIzlkI3jga7jg63jg7zjgqvjg6vlpInmlbB4KOWApDEwMynjgYzjgrDjg63jg7zjg5Djg6vlpInmlbDjgpLopobjgYTpmqDjgZnjgZ/jgoFdXG4iLCB4KTsKICAgICAgICB4ID0gbW9uZGFpMyhpKTsKICAgICAgICBwcmludGYoInggPSAlZCBbTEE6IG1vbmRhaTMoMTAzKeOBruaIu+OCiuWApDEwNOOBjOODreODvOOCq+ODq+WkieaVsHjjgavku6PlhaXjgZXjgozjgZ/jgZ/jgoFdXG4iLCB4KTsKICAgIH0KICAgIAogICAgcHJpbnRmKCJ4ID0gJWQgW0dTOiBmb3Ljg5bjg63jg4Pjgq/jgpLmipzjgZHjgrDjg63jg7zjg5Djg6vlpInmlbB4KG1vbmRhaTPlhoXjgacrMeOBleOCjOOBnzEzKeOCkuWPgueFp+OBmeOCi+OBn+OCgV1cbiIsIHgpOwogICAgcmV0dXJuIDA7Cn0KCg==