#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:2行目でグローバル変数は0で初期化される]\n",x);
	x=101;
	printf("x=%d[GS:18行目で101を代入した]\n",x);
	mondai1(102);
	printf("x=%d[GS:20行目のmondai1で引数102をグローバル変数xに代入した]\n",x);
	mondai2();
	mondai2();
	mondai2();
	printf("x=%d[GS:22～24行目でstatic変数cが3回目で12になり、その値を代入した]\n",x);
	for(int i=103;i<104;i++){
		int x=i;
		printf("x=%d[LA:27行目でfor文のローカル変数xにiを代入して103を代入した]\n",x);
		x=mondai3(i);
		printf("x=%d[LA:29行目でmondai3の戻り値104をローカル変数xに代入した]\n",x);
	}
	printf("x=%d[GS:29行目でfor文が終わるとローカル変数が消え、29行目でmondai3でグローバル変数xが表示される]\n",x);
	return 0;
}
