C言語のポインタはどうしたら分かりやすくなるか?
(0) 背景情報
- osdev-jp の #雑談なんでも にて、C言語のポインタをどうにかしたい、現状では初心者にとって全然わかりやすくない、こんなのは数十年後にはなくなっていい記法だ、という話がでました(私が言いだしました)。
- それで、じゃあ具体的にどうしたらいいか考えよう、という流れになりました。なんと建設的な!
(1) 案
- まず、C言語においてポインタは単純な整数ではない。それは第一に加算や減算時に実際にいくつずつ増減するかというスケールがある。これがあるおかげで、sizeofを使わなくても安全に配列アクセスができる。
- でもそれが一般整数との差異になってよくないと思うので、 +@ や -@ という演算子を考えたい。スケールして足す。引いてからスケールで割る。
- まずその前に、ポインタに関する加算が勝手にスケールされるという仕様はよい。なぜならそうすることで、sizeofにかかわらずプログラムが同じになるからだ。