ライフをハックしたい

プログラミング初心者向けの記事やランニングや就職活動、資格などについても書いています。

ポインタがわからない?C言語プログラミングのポインタ入門

C言語のプログラミングを独学で学んでいると、最初の壁、ポインタで躓く人が多くいます。

f:id:ywataru:20171010175251p:plain

いきなり概念的な話になり、プログラムが難しく感じるかもしれませんが、それまでに基礎がしっかり学習出来ていれば、理解することは難しくありません。

誰もが通った道です。ポインタを1発で理解できる人などいません。(そう思っている人は、ポインタを理解できていないはず)

まずは、ポインタ入門の1つだけ、押さえましょう。

 
いきなりですがここで問題です

あなたの使用しているパソコンに、サイズの大きい重たいファイルがあるとします

例:長時間撮影された動画ファイルなど

このファイルを、パソコン上の違う場所から利用したい場合、どうすればよいでしょうか

 

解法1.コピーする

サイズが大きいですが、そのままコピーしてしまいましょう。一番手っ取り早いです。

デスクトップに複数の動画ファイルが入ったフォルダをコピーしましょう。結婚式の2次会の動画で、10GBあります。もともとあった場所とは別に、デスクトップにファイルのコピーが置かれました。10GBのファイルが2つ出来ました。

嫌ですよね。。。????

嫌だと思わない人は、凄くスペックの良いパソコンを利用している事でしょう。

凄く幸せなことですが、同じファイルが2つある状態は良くありません。では、普通どうしたらよいでしょうか。

 

解法2.ショートカットを作る

ショートカットをデスクトップなどに置いておけば、そのファイルが置いてある場所(アドレス)からファイルを使用することができます。

これが、ポインタです。

変数をコピーするのではなく、アドレスを用いてその変数を利用することがポインタであると理解してしまいましょう。ショートカットで起動し、中身を書き換えることが出来る点はポインタも同じです。アドレスを用いて、アドレス先の値を書き換えることが出来ます。

厳密には、他にも目的がたくさんありますが、このメリットを抑えておけば最初は大丈夫です。

 

まとめ:ポインタとはショートカット機能

下の記事に少し細かい説明を載せているので、そちらも参考にしてみてください。

www.lifehackit.work

スポンサーリンク

最近の開発現場では、C言語をバリバリに使って開発をすることはほぼ無いと思います。では、なぜC言語を学ぶかというと、構造化プログラミング※1と参照の概念を理解させたいからではないでしょうか。

ポインタを完璧に理解しようとすると大変な時間と労力がかかります。学校や会社では、そこまで求めない場合が多いので、なんとなく理解できたらプログラミングの実践編に進んでいきましょう!

※1 構造化プログラミングとは

連接・分岐・反復の3つの基本制御構造だけでプログラムを作成するプログラム開発法