#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 [グローバル変数の初期値]\n " , x
) ; x = 101 ;
printf ( "x = %d [xに101を代入]\n " , x
) ; mondai1( 102 ) ;
printf ( "x = %d [mondai1でxに102を代入]\n " , x
) ; mondai2( ) ;
mondai2( ) ;
mondai2( ) ;
printf ( "x = %d [mondai2を3回繰り返し、xは最終的に12]\n " , x
) ; for ( int i = 103 ; i< 104 ; i++ ) {
int x = i; // ループ内だけのローカル変数
printf ( "x = %d [ループ内のローカル変数xにi(103)を代入]\n " , x
) ; x = mondai3( i) ;
printf ( "x = %d [mondai3の戻り値(104)をローカル変数xに代入]\n " , x
) ; }
printf ( "x = %d [グローバル変数xの値 (mondai3内で13に更新済)]\n " , x
) ; return 0 ;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CgppbnQgeDsKCnZvaWQgbW9uZGFpMShpbnQgYil7CiAgICB4ID0gYjsKfQoKdm9pZCBtb25kYWkyKHZvaWQpewogICAgc3RhdGljIGludCBjID0gMTA7CiAgICB4ID0gYzsKICAgIGMrKzsKfQoKaW50IG1vbmRhaTMoaW50IGQpewogICAgeCsrOwogICAgZCsrOwogICAgcmV0dXJuIGQ7Cn0KCmludCBtYWluKHZvaWQpewogICAgcHJpbnRmKCJ4ID0gJWQgW+OCsOODreODvOODkOODq+WkieaVsOOBruWIneacn+WApF1cbiIsIHgpOwogICAgeCA9IDEwMTsKICAgIHByaW50ZigieCA9ICVkIFt444GrMTAx44KS5Luj5YWlXVxuIiwgeCk7CiAgICBtb25kYWkxKDEwMik7CiAgICBwcmludGYoInggPSAlZCBbbW9uZGFpMeOBp3jjgasxMDLjgpLku6PlhaVdXG4iLCB4KTsKICAgIG1vbmRhaTIoKTsKICAgIG1vbmRhaTIoKTsKICAgIG1vbmRhaTIoKTsKICAgIHByaW50ZigieCA9ICVkIFttb25kYWky44KSM+Wbnue5sOOCiui/lOOBl+OAgXjjga/mnIDntYLnmoTjgasxMl1cbiIsIHgpOwogICAgZm9yIChpbnQgaSA9IDEwMzsgaTwxMDQ7IGkrKyl7CiAgICAgICAgaW50IHggPSBpOyAvLyDjg6vjg7zjg5flhoXjgaDjgZHjga7jg63jg7zjgqvjg6vlpInmlbAKICAgICAgICBwcmludGYoInggPSAlZCBb44Or44O844OX5YaF44Gu44Ot44O844Kr44Or5aSJ5pWweOOBq2koMTAzKeOCkuS7o+WFpV1cbiIsIHgpOwogICAgICAgIHggPSBtb25kYWkzKGkpOwogICAgICAgIHByaW50ZigieCA9ICVkIFttb25kYWkz44Gu5oi744KK5YCkKDEwNCnjgpLjg63jg7zjgqvjg6vlpInmlbB444Gr5Luj5YWlXVxuIiwgeCk7CiAgICB9CiAgICBwcmludGYoInggPSAlZCBb44Kw44Ot44O844OQ44Or5aSJ5pWweOOBruWApCAobW9uZGFpM+WGheOBpzEz44Gr5pu05paw5riIKV1cbiIsIHgpOwogICAgcmV0dXJuIDA7Cn0=