IT・プログラミング雑学

ポインタと参照の違いとは?C++での違いや使い分けをプログラマーがわかりやすく解説

よぉ、桜木建二だ。C++言語などでポインタと参照ってあるよな。どちらも変数のアドレスを指すらしいが、どう違うのだろう。関数の引数に何かを渡すときにも使い分けがあるらしい。ポインタと参照の違いや特徴を、プログラマでもあるライターのwoinaryと一緒に解説していくぞ。

解説/桜木建二

「ドラゴン桜」主人公の桜木建二。物語内では落ちこぼれ高校・龍山高校を進学校に立て直した手腕を持つ。学生から社会人まで幅広く、学びのナビゲート役を務める。

ライター/woinary

某社で社内向け業務システムの開発、運用を30年近くやっていたシステム屋さん。現在はフリーランス。ガジェットやゲーム、ラノベが大好きなおっさんです。

ポインタと参照の違いは?

image by iStockphoto

ポインタと参照はC++言語でプログラミングする際に出てくる言葉です。C++言語の元になったC言語からポインタがあります。その後、C++で参照が追加されたのです。どちらも変数や関数に関係する言葉ですが、使い分けが必要になります。その違いを見ていきましょう。

ポインタ:メモリ上のどこかを指すもの

まずは元々あったポインタからですが、その前に変数の解説をしましょう。変数は値を入れる箱のようなものと言われます。実際にはコンピュータのメモリの中に変数用の場所を用意して、その中に値をしまうのです。そのメモリ中の変数の場所の住所(アドレス)がポインタ

ポインタというとマウスポインタなどの矢印を思い浮かべるかと思います。メモリのある場所を指すコンピュータ内の矢印がポインタなのです。

参照:変数のアドレスを指すもの

参照は後から追加された考え方です。ポインタと似ていますが、ポインタにあった問題を解決したものになります。そこは後で詳しく触れますが、参照も変数を指すポインタのようなものです。ポインタとの最大の違いは足し引きできるかどうか。

ポインタは指している場所に数字を足し引きして指しているところを変更できます。一方、参照は変更ができないのです。なぜそうなっているかは、この後使い方を示しながら確認していきます。

no-img2″>
 <figcaption class=桜木建二

ポインタも参照も変数のある場所を指す矢印だ。だが、ポインタは指している先を変更できるのに対し、参照は変更できないぞ。まずはこの違いをよく覚えておけ。

参照かポインタか?関数での使い方がポイント

image by iStockphoto

プログラミングで関数を使う際、呼び出し元から値を渡すために使うのが引数です。この引数の渡し方がいくつかあります。この渡し方を考える際にポインタや参照が出てきますので、引数のポインタ渡しや参照渡しについて見ていきましょう。

\次のページで「関数の「値渡し」と「ポインタ渡し」の違い」を解説!/

次のページを読む
1 2 3 4
Share: