#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[G:最初のint xを読み込む。]\n " , x
) ; x = 101 ;
printf ( "x =%d[G:前行で値を101を代入した。]\n " , x
) ; mondai1( 102 ) ;
printf ( "x = %d[G:前の行で関数mondai1呼び出してxに代入する]\n " , x
) ; mondai2( ) ;
mondai2( ) ;
mondai2( ) ;
printf ( "x =%d[G:前のmondai2に入り初期は、10が入りそれに伴いc++され11になり、次は11になりc++で12になる最後で12に入るがc++は13になる。それが最後のprintfに入る]\n " , x
) ; for ( int i= 103 ; i< 104 ; i++ ) {
int x = i;
printf ( "x =%d[L:前の行で宣言されたxにiが代入された数\n " , x
) ; x= mondai3( i) ;
printf ( "x =%d[L:前の行のmondai3を呼び出して+1された値]\n " , x
) ; }
printf ( "x =%d[G:最後のmondai2でc++の処理が完了する。]\n " , x
) ; return 0 ;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CmludCB4Owp2b2lkIG1vbmRhaTEoaW50IGIpewoJeCA9IGI7Cn0Kdm9pZCBtb25kYWkyKHZvaWQpewoJc3RhdGljIGludCBjID0xMDsKCXggPSBjOwoJYysrOwp9CmludCBtb25kYWkzKGludCBkKXsKCXgrKzsKCWQrKzsKCXJldHVybiBkOwp9CmludCBtYWluKHZvaWQpIHsKCXByaW50ZigieD0lZFtHOuacgOWIneOBrmludCB444KS6Kqt44G/6L6844KA44CCXVxuIix4KTsKeCA9IDEwMTsKcHJpbnRmKCJ4ID0lZFtHOuWJjeihjOOBp+WApOOCkjEwMeOCkuS7o+WFpeOBl+OBn+OAgl1cbiIseCk7Cm1vbmRhaTEoMTAyKTsKcHJpbnRmKCJ4ID0gJWRbRzrliY3jga7ooYzjgafplqLmlbBtb25kYWkx5ZG844Gz5Ye644GX44GmeOOBq+S7o+WFpeOBmeOCi11cbiIseCk7Cm1vbmRhaTIoKTsKbW9uZGFpMigpOwptb25kYWkyKCk7CnByaW50ZigieCA9JWRbRzrliY3jga5tb25kYWky44Gr5YWl44KK5Yid5pyf44Gv44CBMTDjgYzlhaXjgorjgZ3jgozjgavkvLTjgYRjKyvjgZXjgowxMeOBq+OBquOCiuOAgeasoeOBrzEx44Gr44Gq44KKYysr44GnMTLjgavjgarjgovmnIDlvozjgacxMuOBq+WFpeOCi+OBjGMrK+OBrzEz44Gr44Gq44KL44CC44Gd44KM44GM5pyA5b6M44GucHJpbnRm44Gr5YWl44KLXVxuIix4KTsKZm9yKGludCBpPTEwMztpPDEwNDtpKyspewoJaW50IHggPSBpOwoJcHJpbnRmKCJ4ID0lZFtMOuWJjeOBruihjOOBp+Wuo+iogOOBleOCjOOBn3jjgatp44GM5Luj5YWl44GV44KM44Gf5pWwXG4iLHgpOwoJeD1tb25kYWkzKGkpOwoJcHJpbnRmKCJ4ID0lZFtMOuWJjeOBruihjOOBrm1vbmRhaTPjgpLlkbzjgbPlh7rjgZfjgaYrMeOBleOCjOOBn+WApF1cbiIseCk7Cn0KcHJpbnRmKCJ4ID0lZFtHOuacgOW+jOOBrm1vbmRhaTLjgadjKyvjga7lh6bnkIbjgYzlrozkuobjgZnjgovjgIJdXG4iLHgpOwoJcmV0dXJuIDA7Cn0K