#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: 23行目で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+CiAKaW50IHg7CiAKdm9pZCBtb25kYWkxKGludCBiKSB7CiAgICB4ID0gYjsKfQogCnZvaWQgbW9uZGFpMih2b2lkKSB7CiAgICBzdGF0aWMgaW50IGMgPSAxMDsKICAgIHggPSBjOwogICAgYysrOwp9CiAKaW50IG1vbmRhaTMoaW50IGQpIHsKICAgIHgrKzsKICAgIGQrKzsKICAgIHJldHVybiBkOwp9CiAKaW50IG1haW4odm9pZCkgewogICAgcHJpbnRmKCJ4ID0gJWQgW0dTOiDmnKrliJ3mnJ/ljJbjga7jgrDjg63jg7zjg5Djg6vlpInmlbDjga8w44Gn5Yid5pyf5YyW44GV44KM44KL44Gf44KBXVxuIiwgeCk7CiAgICB4ID0gMTAxOwogICAgcHJpbnRmKCJ4ID0gJWQgW0dTOiAyM+ihjOebruOBpzEwMeOCkuS7o+WFpeOBl+OBn+OBn+OCgV1cbiIsIHgpOwogCiAgICBtb25kYWkxKDEwMik7CiAgICBwcmludGYoInggPSAlZCBbR1M6bW9uZGFpMSgxMDIp5YaF44GnMTAy44KS5Luj5YWl44GX44Gf44Gf44KBXVxuIiwgeCk7CiAKICAgIG1vbmRhaTIoKTsKICAgIG1vbmRhaTIoKTsKICAgIG1vbmRhaTIoKTsKICAgIHByaW50ZigieCA9ICVkIFtHUzog6Z2Z55qE5aSJ5pWwYyjliJ3mnJ/lgKQxMCnjgYxtb25kYWky44GuM+WbnuWRvOOBs+WHuuOBl+OBpysx44Ga44Gk5aKX44GIMTLjgYzku6PlhaXjgZXjgozjgZ/jgZ/jgoFdXG4iLCB4KTsKIAogICAgZm9yIChpbnQgaSA9IDEwMzsgaSA8IDEwNDsgaSsrKSB7CiAgICAgICAgaW50IHggPSBpOwogICAgICAgIHByaW50ZigieCA9ICVkIFtMQTog5ZCM5ZCN44Gu44Ot44O844Kr44Or5aSJ5pWweCjlgKQxMDMp44GM44Kw44Ot44O844OQ44Or5aSJ5pWw44KS6KaG44GE6Zqg44GZ44Gf44KBXVxuIiwgeCk7CiAgICAgICAgeCA9IG1vbmRhaTMoaSk7CiAgICAgICAgcHJpbnRmKCJ4ID0gJWQgW0xBOiBtb25kYWkzKDEwMynjga7miLvjgorlgKQxMDTjgYzjg63jg7zjgqvjg6vlpInmlbB444Gr5Luj5YWl44GV44KM44Gf44Gf44KBXVxuIiwgeCk7CiAgICB9CiAKICAgIHByaW50ZigieCA9ICVkIFtHUzogZm9y44OW44Ot44OD44Kv44KS5oqc44GR44Kw44Ot44O844OQ44Or5aSJ5pWweChtb25kYWkz5YaF44GnKzHjgZXjgozjgZ8xMynjgpLlj4LnhafjgZnjgovjgZ/jgoFdXG4iLCB4KTsKICAgIHJldHVybiAwOwp9CiA=