まあ、日々の記録なんとなく

計算機とか、数学とか、その他

「ポインタ完全制覇」1-3 ポインタについて

1-3-1 そもそも、悪名高いポインタとは何か

  • 「ポインタは、他の変数のアドレスを内容とする変数」(by K&R
    • ポインタといえば変数であるかのように説明されているが、実際には必ずしもそうではない(そうではないとはどういうことなんだろう)
  • ポインタ型
    • ポインタ型という型が単独で存在するわけではなく、他の型から派生することにより作り出される(他の型、int型とか、は単独で存在可能)
      • 被参照型Tから派生されるポインタ型はTへのポインタと呼ぶ
      • intへのポインタ型、doubleへのポインタ型とか
      • ポインタ型は型なので、ポインタ型の変数もポインタ型の値もある
intという型は整数を表す
intは型なので、int型を格納するための変数もある
int型の値もある

ポインタ型も同じく、
ポインタ型はメモリアドレスを表す
ポインタは型なので、ポインタを格納するための変数もある
ポインタ型の値もある

1-3-2 ポインタに触れてみよう

#include <stdio.h>

int main(void)
{
    int hoge = 5;
    int piyo = 10;
    int *hoge_p;

    printf("&hoge..%p\n", (void*)&hoge);
    printf("&piyo..%p\n", (void*)&piyo);
    printf("&hoge_p..%p\n", (void*)&hoge_p);

    return 0;
}