●学校情報

講座一覧・募集状況

学習方法

学習サポート

修了生の評価

受講生の横顔

当学院について

入学相談

入学手続

 

●講座情報

技術者養成講座

プログラミング講座

WEB講座

情報処理試験講座

Excel講座

Access講座

 

●関連コラム

関連コラム

関連用語集

 

logo

 

 

関連用語集

アドレスを扱う魔法の道具「ポインタ(pointer)」とは?C言語の基本をやさしく解説

C言語を学ぶ上で避けて通れないのが「ポインタ(pointer)」です。
ポインタとは、変数そのものではなく「その場所(メモリアドレス)」を扱う特別な変数です。
難しそうに見えますが、1つずつ学べばきちんと理解できます。

ポインタとは?

ポインタとは、「変数がどこにあるか(メモリ上の住所)」を記録する変数です。
値そのものではなく、値が保存されている場所(アドレス)を指すのが特徴です。

基本の使い方

int a = 10;       // 普通の変数
int *p;           // ポインタの宣言(int型を指す)
p = &a;           // aのアドレスをpに代入
    
  • *p:ポインタが指している先の値を表す(間接参照)
  • &a:変数aのアドレスを取得

ポインタのイメージ

以下のような関係になります:

a   : 値 10
&a  : aのアドレス(例:0x7ffe...)
p   : &a(つまりaのアドレス)
*p  : aの中身(10)にアクセス
    

printfで確認してみよう

#include <stdio.h>

int main(void) {
    int num = 100;
    int *ptr = #

    printf("numの値:%d\n", num);
    printf("ptrが指す値:%d\n", *ptr);
    printf("numのアドレス:%p\n", &num);
    printf("ptrの値(アドレス):%p\n", ptr);
    return 0;
}
    

ポインタを使うメリット

  • 関数に「値そのもの」ではなく「場所」を渡せる(参照渡し)
  • 配列や文字列の操作に便利
  • 動的メモリ確保(mallocなど)に必須
  • データ構造(リスト・木構造など)を実現できる

注意点

  • 正しくないアドレス(NULLやゴミ値)を使うと危険
  • *&の使い方を混同しないように
  • 使う前に必ず初期化を!

まとめ

ポインタとは、変数の「アドレス(場所)」を記録・操作するための特別な変数です。
最初は難しく感じますが、*(間接参照)と&(アドレス演算子)を意識しながら、実際に手を動かしてみることが理解への近道です!