第9回 C言語の基礎知識 ポインタ

 

<カリキュラムの内容> ポインタ

 

~ポインタとは何か~

ポインタと一概に言われてもパッと浮かばないかもしれません。そもそも、ポインタとは何なのか、例を用いて説明します。

 

ポインタと横文字で書かれてはいますが、簡単に言うと、「家の住所を見ている人」なのです。住所ではなく、それを見ている人です。

 

変数を定義すると、メモリに格納され、その住所、いわゆるアドレスを持ちます。

ポインタとは、そのアドレスを指し示すものです。例えば、変数Aに10を格納したい際、

ポインタに変数Aのアドレスを代入し、そのアドレスを指定して10を代入すると、Aの中には、しっかりと10が格納されます。

 

~何のためにあるのか~

「上記だけなら、普通に変数に値を代入すればいい」と思う人は多いかもしれません。しかし、メモリのアドレスを見て、直接処理を施すことは、大きなメリットもあります。前項で説明した、関数を例とするならば、関数へ引数を渡す際、その値をコピーして渡すことになり、余分な容量を取ることになりますが、ポインタを引数で渡し、アドレスを参照させれば、

関数内で行われた処理を返却する際、直接変数へ値を返却することができるのです。

そのため、データの容量が、とても小さく済みます。プログラムにおいて、データ容量の削減は、とても重要なことです。そのため、C言語の特徴ともいえるポインタは、ぜひ活用していきたいところですが、デメリットとして、記述方法によってはシステムエラーを起こしやすいため、取捨選択が重要です。

 

<難易度>

特殊なコーディングとなるため、難解です。変数とポインタは、記述が紛らわしいため、求めているものがアドレスなのか、値なのか、見極める必要があります。

 

<感想・アドバイス>

変数のアドレスを確実に特定し、それを正しいポインタ変数へ代入する必要があります。コーディングは丁寧に、どのタイミングで必要なのかを考え、ポインタは活用しましょう。

無料説明会、無料相談会はこちらから

無料説明会