ポインタとは⓪
ポインタの理解を困難にさせている一因に、呼称の曖昧さがあるように思う。
下記2つの例を見てほしい
*p
pをポインタ変数もしくはポインタと呼ぶ
*を間接演算子と呼ぶ。
p = &a
pをポインタ変数もしくはポインタと呼ぶ
&をアドレス演算子と呼ぶ。
上記表記の仕方が違えどp自体をポインタもしくはポインタ変数と呼んでいる事がわかるだろうか
多くのプログラミング用語は英語を日本語に訳しているだけなので、紛らわしい事が多い。
ポインタはその代表格だ。呼称を整理しておくことでポインタに関する解説文が読めるようになる。
次に下記3つの例の呼称を見て欲しい。
① Int *p
pはint型を指すポインタと呼ぶ.
もしくはpはint(イント)へのポインタと呼ぶ
あくまでpが指す対象がint型の変数という事で、p自体はint型変数出ない事に注意しよう
② char *p
pは char型を指すポインタと呼ぶ.
もしくはpのchar へのポインタと呼ぶ
あくまでpが指す対象がchar型の変数という事で、p自体はchar型変数ではない事に注意しよう
③ p = &a
pはaを指すポインタと呼ぶ
いずれも~を指すポインタという呼称になっている。
1と2はポインタの型を指定しているだけであり、3はaのアドレスを指しているつまりアドレスを取得している。