ベイジアン研究所

プログラミング言語(アルゴリズム的な話が中心)やガジェットの紹介をしています。時々心理学の話も。

【C言語入門】ポインタ編

  1. 準備 ポインタについて説明をする前に、関数の引数について復習する。 関数に実引数を受け渡す際に、関数の中で実引数のコピーが生成される。このコピーを書き換えても、元の変数には影響しない。 詳しくは関数編を参照してほしい。

camelsan.hatenablog.com

ポインタを使用すると、関数に渡した値でも実引数を変更する事ができる。

・オブジェクトとアドレス
数値などを格納する変数は、記憶域の一部として存在する。(パソコンの中に0,1のデータとしてメモリーに格納される)

「アドレス」とは、オブジェクトが記憶域のどこに存在するか、その場所を表すものである。 f:id:camelsan:20201121165345p:plain

・アドレス演算子 「&」をオブジェクトの前につけると、そのオブジェクトのアドレスを生成する事ができる。「&」をアドレス演算子と言う。

  1. ポインタ 「ポインタ」とは、「アドレス」を格納する”変数”である。ポインタはint型の変数などのように、物としては変数である。このような理解をするだけでもポインタに関して使い方がわかるようになる。

int型の変数nのアドレスを格納する変数、すなわちnのポインタを宣言するときは次のように宣言する。

int *n

このように宣言する事で、nはポインタとなる。この時、nの型は「intへのポインタ型」と言う。

f:id:camelsan:20201121171025p:plain

ポインタ型の変数の前に、「*」をつける事でポインタ型の変数の実態そのものを表す。