ポインタ変数ptaにポインタ変数ptbを代入することによりポインタ変数ptbが格納しているアドレスをポインタ変数ptaに代入することができます

てんC「は~い みなさ~~ん お元気ですか。


今日は ようこそ お越しくださいました。


今日はソーラーさんとマックスさんが


C++言語の解説をしてくれますよ~~


よかったね みんな~


それでは


みんなでソーラーさんとマックスさんを呼んでみましょうね。



ソーラーさ~~~ん~~~~~


マックスさ~~ん~~~~~」



ソ~ラ~「ぐわっ」


マックス「わおぉぉぉぉぉぉぉぉ~~~~~~~~~~~~ん」


てんC「さあ マックスさんとソーラーさんの登場です」


ペタペタペタ


マックス「わぁおぉ~~~~~~~~ん」


ソーラー「ぐわっ」


てんC「まず次のプログラムをご覧ください。


#include <iostream>


using namespace std;


int main() {


int a = 10;

int* pta;

pta = &a;


cout<<*pta<<"\n";


int b = 100;

int* ptb;

ptb = &b;


cout<<*ptb<<"\n";


pta = ptb;


cout<<*pta<<"\n";


return 0;

}


ビルド実行結果


10

100

100


てんC「このプログラムの前半の命令文


int a = 10;

int* pta;

pta = &a;


cout<<*pta<<"\n";


では


int* pta;


により作製されたポインタ変数ptaに


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


ですので


*ptaはアドレス&aのメモリに格納されている数値10をあらわすことになります。


cout<<*pta<<"\n";


の実行結果が10になっているのがわかりますね。」


ソーラー「かあっ」


マックス「ワン🐕」


てんC「次に


このプログラムの後半の部分の命令文


int b = 100;

int* ptb;

ptb = &b;


cout<<*ptb<<"\n";


pta = ptb;


cout<<*pta<<"\n";


をご覧ください。


int b = 100;

int* ptb;

ptb = &b;


により


作製されたポインタ変数ptbに


変数bのアドレスが代入されています。


ですので


*ptbはアドレス&bのメモリに格納されている数値100をあらわすことになります。


cout<<*ptb<<"\n";


の実行結果が100となっていることからもそのことがわかりますね。


次に


pta = ptb;


が実行されると


ポインタ変数


pta


には


ポインタ変数ptbの格納しているアドレス&bが代入されることになります。


ですので


*ptaは


アドレス&bのメモリに格納されている数値100をあらわすことになります。


cout<<*pta<<"\n";


の実行結果が100となっていることからも


そのことがわかります」


マック「わんわん💖」


ソーラー「くわっ」


戯れるマックスとソーラー。

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

作者を応援しよう!

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

応援したユーザー

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

新規登録で充実の読書を

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

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

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