ポインタ・構造体

2011年6月13日にロボカップ勉強会第二回目が行われました。
今回は主催者をローテーションということで、戦略班の他のメンバーにプレゼン形式での勉強会を開いていただきました。
今回はポインタ・構造体という所で、分からない人も多いところだと思います。
実際私も話を聞いていて、あ、やべっ
なんて思った点が…(ポインタのポインタとか
今日は私なりにまとめてみようと思います。(めちゃくちゃ簡単に!)

まずポインタってどんな物?

	int *p;	//int型ポインタ宣言
	int a;

	a = 10;
	p = &a;
	
	// アドレス
	printf("aのアドレス %p\n", &a);
	printf("pのアドレス %p\n", p);

	// 値
	printf("aの値 %d\n", a);
	printf("pの値 %d\n", *p);

	return 0;

これで簡単に説明していきます。
ポインタを宣言し、ポインタpにaのアドレスを持たせています。

	p = &a;

ということは、pに入る値はaのアドレスに入っている値と同じ!と言う事になります。(アドレスが同じだからですよ!)
ここでポインタを使う上で見極めてほしい点は、

	printf("%p\n", p);  // pはアドレス
        printf("%d\n", *p); // *pはポインタの中身

'*'(アスタリスク)が付けばポインタの中身ということです!
'*'を付ける付け無いは意味が違いすぎますので、注意してほしい点です。
使い方の基本中の基本はこんな感じです。

どういう場面で使うのかというと…
具体例はやめておきます。
が、この日記の一番初めに書いた角度を求めるプログラム。
これにポインタが少し使われていたり…
使う機会も増えると思うので、どんどん使って攻略しちゃいましょう(^^ゞ