C言語

実践型C言語入門 ポインタ

皆さんこんばんにちは、ユウです。

今回はC言語のポインタについて紹介していきます。

ポインタは個人的に、C言語の基礎の中で一番ややこしいと感じている部分です。

ですので、今回の記事はゆっくりめに読んでいってほしいと思います。

今回もコードはコピペでOKです。

ただし、ファイルを作って必ずコードを実行するようにして下さい。

以前の記事は以下にリンクを張っているので、興味がある方は足を運んで下さい。

実践型C言語入門 反復処理皆さんこんばんにちは、ユウです。 今回は反復処理について紹介したいと思います。 データの出力や、式の計算、選択処理については...
実践型C言語入門 配列今回はC言語の配列について紹介していきます。配列はデータの処理によく使われる機能です。最初の内は少しややこしいと感じるかもしれませんが、覚えるといろいろと作業が短縮できるので覚えておいて損はありません。1次元配列と2次元配列それに加え、反復処理を加えた配列について紹介しているのでぜひ足を運んでみて下さい。...
実践型C言語入門 関数皆さんこんばんにちは、ユウです。 今回はC言語の関数について紹介していきたいと思います。 他の記事では、式の計算や条件分岐、...

それでは、はじめて行きたいと思います。

ポインタについて


実行結果
出力される値は異なっていて大丈夫です。

<解説>

ここではコードだけではなく、ポインタ自体の説明を行っていきたいと思います。

aやbなどの変数は変数名とデータ型の情報を持ち、メモリに保存されます。

メモリとは、コンピュータ上で数値や文字などの値を保存しておく装置です。

そして、アドレスとはメモリ上のどこに保存されているかを指し示す番地となります。

このアドレスは、&(アドレス)演算子と呼ばれるものを使用することで、アドレスを確認する事ができます。

今回の私の実行結果は上記のようになっていますが、皆さんとメモリ環境は違うので値は異なるかと思います。

ですが、基本的に16進数で表記されるかと思います。

データ型は種類により、大きさが異なります。

int 型は2バイト、float 型は4バイト、double型は8バイトといった感じです。

当然、この大きさが大きいほどメモリを占める割合は大きくなります。

ポインタ変数


実行結果

<解説>

7行目・・・ポインタ変数の宣言

ポインタは変数と同様に、あらかじめ指定しておく必要があります。

変数と異なる部分は前に「*」がつくことです。

「*」は *(間接参照)演算子というものです。

ポインタとは、ある変数に格納されているアドレスを記憶しておくための変数です。

この「*」を用いることにより、ポインタに格納されているアドレスから、そこに格納されている変数の値を所得できます。

9、10行目・・・ポインタ変数に変数のアドレスを代入

a,bのアドレスをポインタ変数に代入します。

ここで代入することで、aとbのそれぞれが2つ存在しているようになります。

aとaptr、bとbptrといった感じで、これらはそれぞれ同じアドレスを持っているということになります。

12行目・・・ポインタ変数による計算

「*」でポインタ変数に格納されている値を取り出しています。

9,10行目でaptrにはaのアドレスが、bptrにはbのアドレスが代入されています。

このアドレスの値を参照しているので、aptrはaと同じ値をもちbptrはbと同じ値になります。

ですので、ここではaptrには1200,bptrには800が代入されています。

最後に

今回はC言語のポインタについて紹介してきました。

ポインタはメモリについて少し理解しないと難しい面があります。

ですが、ポインタを使う事で、関数などで変数のアドレスを引数として渡すことができたりなどします。

覚えると意外と楽に使えるのでぜひ、覚えるようにして下さい!

今回はこれで以上となります。

最後まで読んでいただきありがとうございました!

C言語学習についてまとめている記事があるので、そちらの方も見て下さると嬉しいです。

実践型C言語入門 総集編皆さんこんばんにちは、ユウです。 今回は今まで紹介してきたC言語のまとめとなります。 C言語は高校や大学で習うイメージがある...
ABOUT ME
ユウ
ユウ
プログラミング担当です。夜行性大学生やってます。 メンバーの中で一番プログラミングが得意で、将来はBMIという研究をしてALSの患者さんへの医療機器の開発を目標にしています。(すごそう) 無線LAN有線LANより便利。