#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何も宣言されていなく、0で初期化\n " , x
) ; x = 101 ;
printf ( "x = %d;G,xを代入された上記の101が\n " , x
) ; mondai1( 102 ) ;
printf ( "x = %d;G,102に代入されたmondai関数によって\n " , x
) ; mondai2( ) ;
mondai2( ) ;
mondai2( ) ;
printf ( "x = %d;,G最初10だったが上に3回宣言されているから10,11,12となり12が出てくる\n " , x
) ; for ( int i = 103 ; i< 104 ; i++ ) {
int x = i;
printf ( "x = %d;L,for文内でi=103となっていてそれがxに置き換わっている\n " , x
) ; x = mondai3( i) ;
printf ( "x = %d;L,103からmondai関数によって1増加し104に\n " , x
) ; }
printf ( "x = %d;G,グローバル変数が12だったが、1増加して13に\n " , x
) ; return 0 ;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CgppbnQgeDsKCnZvaWQgbW9uZGFpMShpbnQgYikgewogICAgeCA9IGI7Cn0KCnZvaWQgbW9uZGFpMih2b2lkKSB7CiAgICBzdGF0aWMgaW50IGMgPSAxMDsgIC8v44Kw44Ot44O844OQ44OrCiAgICB4ID0gYzsKICAgIGMrKzsKfQoKaW50IG1vbmRhaTMoaW50IGQpIHsKICAgIHgrKzsKICAgIGQrKzsKICAgIHJldHVybiBkOwp9CgppbnQgbWFpbih2b2lkKSB7CiAgICBwcmludGYoInggPSAlZDtH5L2V44KC5a6j6KiA44GV44KM44Gm44GE44Gq44GP44CBMOOBp+WIneacn+WMllxuIiwgeCk7CiAgICB4ID0gMTAxOwogICAgcHJpbnRmKCJ4ID0gJWQ7Ryx444KS5Luj5YWl44GV44KM44Gf5LiK6KiY44GuMTAx44GMXG4iLCB4KTsKICAgIG1vbmRhaTEoMTAyKTsKICAgIHByaW50ZigieCA9ICVkO0csMTAy44Gr5Luj5YWl44GV44KM44GfbW9uZGFp6Zai5pWw44Gr44KI44Gj44GmXG4iLCB4KTsKICAgIG1vbmRhaTIoKTsKICAgIG1vbmRhaTIoKTsKICAgIG1vbmRhaTIoKTsKICAgIHByaW50ZigieCA9ICVkOyxH5pyA5YidMTDjgaDjgaPjgZ/jgYzkuIrjgavvvJPlm57lrqPoqIDjgZXjgozjgabjgYTjgovjgYvjgokxMCwxMSwxMuOBqOOBquOCijEy44GM5Ye644Gm44GP44KLXG4iLCB4KTsKICAgIGZvciAoaW50IGkgPSAxMDM7IGk8MTA0OyBpKyspIHsKICAgICAgICBpbnQgeCA9IGk7CiAgICAgICAgcHJpbnRmKCJ4ID0gJWQ7TCxmb3LmloflhoXjgadpPTEwM+OBqOOBquOBo+OBpuOBhOOBpuOBneOCjOOBjHjjgavnva7jgY3mj5vjgo/jgaPjgabjgYTjgotcbiIsIHgpOwogICAgICAgIHggPSBtb25kYWkzKGkpOwogICAgICAgIHByaW50ZigieCA9ICVkO0wsMTAz44GL44KJbW9uZGFp6Zai5pWw44Gr44KI44Gj44GmMeWil+WKoOOBlzEwNOOBq1xuIiwgeCk7CiAgICB9CiAgICBwcmludGYoInggPSAlZDtHLOOCsOODreODvOODkOODq+WkieaVsOOBjDEy44Gg44Gj44Gf44GM44CBMeWil+WKoOOBl+OBpjEz44GrXG4iLCB4KTsKICAgIHJldHVybiAwOwp9
stdout
x = 0;G何も宣言されていなく、0で初期化
x = 101;G,xを代入された上記の101が
x = 102;G,102に代入されたmondai関数によって
x = 12;,G最初10だったが上に3回宣言されているから10,11,12となり12が出てくる
x = 103;L,for文内でi=103となっていてそれがxに置き換わっている
x = 104;L,103からmondai関数によって1増加し104に
x = 13;G,グローバル変数が12だったが、1増加して13に