C 言語復習中

最近プロジェクトの関係で Objective-C を勉強しています。
ということで、C 言語の復習もしています。

C 言語は入門本をやったのと、前プロジェクトでちょっと修正したり関数追加したりくらい。
本は多分2冊くらいしか読んでいない。

新・C言語入門 シニア編 (C言語実用マスターシリーズ)

新・C言語入門 シニア編 (C言語実用マスターシリーズ)

解きながら学ぶC言語

解きながら学ぶC言語

しかも読んだのも3年以上前な気がする…。

そして、読みかけのが2冊あった…。
だめだな、私。

ということで、ポインタは難しい、難しい言われていますが、私にとっての難しさの根本は、色々な記号の使用方法を学ぶ必要があり、表現方法も様々あり、ちょっと使わないとすぐ忘れてしまうという感じです。
まず、main が自由に宣言できるのがもう、すごい自由だよね!!

#include <stdio.h>
int main(void)
{
	int a = 100;
	int *pa = &a; //ポインタの代入。
	int x = *pa; //ポインタの値取得。
	int b = 300;
	int *pb = &b;

	printf("data:a=%d b=%d x=%d pa=%d pb=%d\n", a, b, x, *pa, *pb);
	//data:a=100 b=300 x=100 pa=100 pb=300

	*pa = 200; //ポインタの値を書き換え。
	printf("data:a=%d b=%d x=%d pa=%d pb=%d\n", a, b, x, *pa, *pb);
	//data:a=200 b=300 x=100 pa=200 pb=300

	pa = pb; //ポインタを書き換え。
	printf("data:a=%d b=%d x=%d pa=%d pb=%d\n", a, b, x, *pa, *pb);
	//data:a=200 b=300 x=100 pa=300 pb=300

	*pb = 400;
	printf("data:a=%d b=%d x=%d pa=%d pb=%d\n", a, b, x, *pa, *pb);
	//data:a=200 b=400 x=100 pa=400 pb=400

	return 0;
}