変数のアドレスを格納するポインタ変数のアドレスを格納するポインタ変数(ポインタのポインタ)ってなんですか?

ソーラー「


今日は


みなさん おまちかね




変数のアドレスを格納するポインタ変数のアドレスを格納するポインタ変数


          (ポインタのポインタ)



について


学んでみたいと思います



アレサ「


変数のアドレスを格納するポインタ変数のアドレスを格納するポインタ変数?


???


ですか?」


ソーラー「


まず


aのchar*(キャラアスタリスク)型のポインタ変数宣言


が用いられたプログラムをご覧ください


👇


#include <stdio.h>


int main() {


char i = 'b';


char *a = &i;


printf("%c\n", *a);


return 0;


}


ビルド実行結果


b


ソーラー「


このプログラムでは


iのchar型の変数宣言


char i = 'b';


の実行により


char型の変数iに文字データ'b'が格納されています



次に


char *a = &i;


の実行により


char*(キャラアスタリスク)型のポインタ変数a


に変数iのアドレス&iが代入されています


ですので


aにアスタリスク演算子*


を作用させた


*a



変数iを表すことになります


このように


char*(キャラアスタリスク)型のポインタ変数は


char型の変数のアドレスを格納できるんだったね😊


では


         char** a; 



って何のことでしょうか?」


アレサ「??


         char** a; 


ですか?


aにアスタリスク演算子*が2つくっついています


どのような仕組みになっているのですか?」



ソーラー「

            char** a; 


とは


       aのchar**型のポインタ変数宣言


つまり


char型の変数のアドレスを格納するポインタ変数のアドレスを格納するポインタ変数宣言




           aは


char型の変数のアドレスを格納するポインタ変数のアドレスを格納するポインタ変数


なんです」


アレサ「


        aは


char型の変数のアドレスを格納するポインタ変数のアドレスを格納するポインタ変数

・・ですか・・・」


ソーラー「


char*型のポインタ変数宣言を行い


char*型のポインタ変数を作製すると


そのchar*型のポインタ変数には


char型の変数のアドレスを格納することができました


ところで


このchar*型のポインタ変数に


char型の変数のアドレスを格納したとき


char*型のポインタ変数の管理しているメモリに


char型の変数のアドレスが格納されることになります


char型の変数のアドレスを格納している


char*型のポインタ変数の


管理しているメモリにはアドレス番号がついていますね


実は


そのアドレス番号を格納するポインタ変数も


存在しているんです


そのポインタ変数名をaとすると


そのポインタ変数aは


aのchar**型のポインタ変数宣言


char** a;


により生成されます


char型の変数のアドレス

格納するポインタ変数のアドレス

格納するポインタ変数aが生成されるんだね


この

char型の変数のアドレス

格納するポインタ変数のアドレス

格納するポインタ変数a


にアスタリスク演算子*を作用させた


*a



char型の変数のアドレスを格納するポインタ変数を


表すことになり


char型の変数のアドレスを格納するポインタ変数


*a


にアスタリスク演算子*を作用させた


**a



char型の変数をあらわすことになります」

  • Twitterで共有
  • Facebookで共有
  • はてなブックマークでブックマーク

作者を応援しよう!

ハートをクリックで、簡単に応援の気持ちを伝えられます。(ログインが必要です)

応援したユーザー

応援すると応援コメントも書けます

新規登録で充実の読書を

マイページ
読書の状況から作品を自動で分類して簡単に管理できる
小説の未読話数がひと目でわかり前回の続きから読める
フォローしたユーザーの活動を追える
通知
小説の更新や作者の新作の情報を受け取れる
閲覧履歴
以前読んだ小説が一覧で見つけやすい
新規ユーザー登録無料

アカウントをお持ちの方はログイン

カクヨムで可能な読書体験をくわしく知る