C言語でポインタという壁にぶちあたって、プログラミングが嫌になってしまう方が多いです。
アドレスという独自の概念は、初心者には難しいものがあります。
「ポインタの使いどころがわからない」
アドレスをプログラミングにどう活かしたらよいのか分からない人も多いと思います。
私は元プログラマーでC言語の経験者でもあります。
その経験を活かし、C言語のポインタの活用法を紹介したいと思います。
スポンサーリンク
C言語のポインタは挫折しやすい
私が最初に扱ったプログラミング言語はC言語でした。
全くの初心者でしたが書店で本を買い、家でこそこそとプログラミングしてました。
お恥ずかしい話ですが本を何度読み返しても、ポインタのイメージは掴めませんでした。
それほど初心者にはポインタは最大の難関であるとも言えます。
プログラミングは実践で感覚を掴む傾向にある為、本だけを読んでも理解できません。
手を動かしながらアドレスという概念を理解する必要があります。
挫折しないポイントとしては、わからなくても手を動かして実際の挙動を確認してみることが大切です。
C言語のポインタの活用法2つ
間接参照
プログラミングで出てくる関数。
引数は何個も指定できますが、戻り値は1個しか取得できませんよね。
戻り値を2個以上取得したい時が、ポインタの使いどころの一つです。
ポインタを使うと間接参照をすることができます。
間接参照によって、引数に渡した外部の変数を変更することができます。
値を外部から書き換えたい時は、ポインタを思い出してみて下さい。
高速化
構造体などの大きなデータを引数に渡す時、ポインタはかなり役に立ちます。
そのまま構造体を引数に渡すと、そのデータ量に比例して処理が重くなってしまいます。
それに比べてポインタで構造体を渡すと、アドレスを渡すことになるので、データのサイズは構造体に比例しません。
ポインタは外部からデータを変えられてしまう恐れがあり、これがバグに繋がることもあります。
外部の書き換えを防ぐ為には、型の前にcountを付けましょう!!
プロでもC言語のポインタは難しい
プロでもC言語のポインタを知らない、分からない方は大勢います。
アドレスを意識しないでプログラミングできる言語もたくさんあるので、
あまり思い詰めないことが大切です。
私もポインタは大っ嫌いです。
ただ繰り返し本を読んで、手を動かしているうちに、長い年月を経てだんだんとわかってきました。
すぐ理解できないのは当たり前です。
ポインタでつまづいても、時が経てば自然と分かるようになってきます。
最初から全てを理解する必要はありません。
実際にコードを書きながら、少しづつ理解を深めていきましょう!!