永遠の極壁 ポインタ

コンピュータの処理能力が上がり、C言語を使わねばならないシチュエーションが減っています。しかしながら、⁠コンパクト」⁠処理速度が速い」という特徴から、組み込み系システム開発におけるC言語の需要は未だに高いものがあります。また、WEB系システム開発に用いられるスクリプト言語に比べると労働対価が高いので、C言語をマスターすることは時代遅れな考えではありません。

C言語をマスターする際の妨げになるのが、ポインタです。ポインタを理解するのが難しいのは、ポインタがコンピュータ特有の概念だからです。大雑把な言い方をすれば、データを利用する際、そのデータが保存されているメモリ上の番地(アドレス)を利用するという考えがあります。

たとえば、プログラムを記述するとき、特有の名前を付けて変数宣言すると思います。人間にとっては、名前が付いている変数を使ってデータにアクセスするのが理解しやすいわけです。ただし、変数を宣言してその変数にデータを格納した場合、実際にデータを格納する場所はメモリ上のいずこかです。コンピュータとしては、データを利用するにはデータが格納されている場所のアドレスを利用しています。

C言語は、WEB系システム開発に用いられるスクリプト言語に比べて、コンピュータの考え方に近いプログラミング言語です。そのためアドレスを利用するポインタが使われているのです。とは言っても、ポインタはC言語特有の考えではありません。プログラミング言語全般に渡る概念です。直接ポインタを利用しない言語もありますが、人間に見えないように覆い隠されているだけです。JavaやC#など、C言語よりも後に作られた言語でも、アドレスを使ってデータにアクセスするという方法は多用されます。

今回発売になるC言語 ポインタが理解できない理由[改訂新版]は、まるまる1冊丁寧に、ポインタを解説した書籍です。これを読み終えたときには、ポインタの壁を越えていることでしょう。