#include <stdio.h>
int x; // グローバル変数(初期値は自動的に0)
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を代入したから101]\n " , x
) ;
mondai1( 102 ) ;
printf ( "x = %d [GS:mondai1(102)内でグローバル変数xに102が代入されたから102]\n " , x
) ;
mondai2( ) ;
mondai2( ) ;
mondai2( ) ;
printf ( "x = %d [GS:mondai2が3回実行され static変数cの12が代入されたから12]\n " , x
) ;
for ( int i = 103 ; i < 104 ; i++ ) {
int x = i; // ローカル変数x(グローバル変数xをシャドーイング)
printf ( "x = %d [LA:ローカル変数xにi(103)を代入したから103]\n " , x
) ;
x = mondai3( i) ;
printf ( "x = %d [LA:mondai3(103)の戻り値104がローカル変数xに代入されたから104]\n " , x
) ; }
printf ( "x = %d [GS:for文を抜けグローバル変数xを参照。mondai3内でインクリメントされたため13]\n " , x
) ;
return 0 ;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CgppbnQgeDsgLy8g44Kw44Ot44O844OQ44Or5aSJ5pWw77yI5Yid5pyf5YCk44Gv6Ieq5YuV55qE44GrMO+8iQoKdm9pZCBtb25kYWkxKGludCBiKSB7CiAgICB4ID0gYjsKfQoKdm9pZCBtb25kYWkyKHZvaWQpIHsKICAgIHN0YXRpYyBpbnQgYyA9IDEwOwogICAgeCA9IGM7CiAgICBjKys7Cn0KCmludCBtb25kYWkzKGludCBkKSB7CiAgICB4Kys7CiAgICBkKys7CiAgICByZXR1cm4gZDsKfQoKaW50IG1haW4odm9pZCkgewogICAgcHJpbnRmKCJ4ID0gJWQgW0dTOuWIneacn+WApOOBjOOBquOBhOOBi+OCiTBdXG4iLCB4KTsKICAgIAogICAgeCA9IDEwMTsKICAgIHByaW50ZigieCA9ICVkIFtHUzrnm7TliY3jgacxMDHjgpLku6PlhaXjgZfjgZ/jgYvjgokxMDFdXG4iLCB4KTsKICAgIAogICAgbW9uZGFpMSgxMDIpOwogICAgcHJpbnRmKCJ4ID0gJWQgW0dTOm1vbmRhaTEoMTAyKeWGheOBp+OCsOODreODvOODkOODq+WkieaVsHjjgasxMDLjgYzku6PlhaXjgZXjgozjgZ/jgYvjgokxMDJdXG4iLCB4KTsKICAgIAogICAgbW9uZGFpMigpOwogICAgbW9uZGFpMigpOwogICAgbW9uZGFpMigpOwogICAgcHJpbnRmKCJ4ID0gJWQgW0dTOm1vbmRhaTLjgYwz5Zue5a6f6KGM44GV44KMIHN0YXRpY+WkieaVsGPjga4xMuOBjOS7o+WFpeOBleOCjOOBn+OBi+OCiTEyXVxuIiwgeCk7CiAgICAKICAgIGZvciAoaW50IGkgPSAxMDM7IGkgPCAxMDQ7IGkrKykgewogICAgICAgIGludCB4ID0gaTsgLy8g44Ot44O844Kr44Or5aSJ5pWweO+8iOOCsOODreODvOODkOODq+WkieaVsHjjgpLjgrfjg6Pjg4njg7zjgqTjg7PjgrDvvIkKICAgICAgICBwcmludGYoInggPSAlZCBbTEE644Ot44O844Kr44Or5aSJ5pWweOOBq2koMTAzKeOCkuS7o+WFpeOBl+OBn+OBi+OCiTEwM11cbiIsIHgpOwogICAgICAgIAogICAgICAgIHggPSBtb25kYWkzKGkpOyAKICAgICAgICBwcmludGYoInggPSAlZCBbTEE6bW9uZGFpMygxMDMp44Gu5oi744KK5YCkMTA044GM44Ot44O844Kr44Or5aSJ5pWweOOBq+S7o+WFpeOBleOCjOOBn+OBi+OCiTEwNF1cbiIsIHgpOwogICAgfQogICAgCiAgICBwcmludGYoInggPSAlZCBbR1M6Zm9y5paH44KS5oqc44GR44Kw44Ot44O844OQ44Or5aSJ5pWweOOCkuWPgueFp+OAgm1vbmRhaTPlhoXjgafjgqTjg7Pjgq/jg6rjg6Hjg7Pjg4jjgZXjgozjgZ/jgZ/jgoExM11cbiIsIHgpOwogICAgCiAgICByZXR1cm4gMDsKfQ==