天国にいけるC言語入門 ヘキサ構造体 ver5.2130
ポインタ変数ptaにポインタ変数ptbを代入することによりポインタ変数ptbが格納しているアドレスをポインタ変数ptaに代入することができます
ポインタ変数ptaにポインタ変数ptbを代入することによりポインタ変数ptbが格納しているアドレスをポインタ変数ptaに代入することができます
アレサ「は~い😊みんな~
今日は ようこそ お越しくださいました。
今日はソーラーさんがC言語の解説をしてくれますよ~~
みんなでソーラーさんを呼んでみましょうね。
ソーラーさ~~~ん~~~~~」
ソ~ラ~「ぐわっ」
ペタペタペタ
ソーラー「ぐわっ」
アレサ「まず次のプログラムをご覧ください。
#include <stdio.h>
int main(void) {
int a = 10;
int* pta;
pta = &a;
printf("%d\n", *pta);
int b = 100;
int* ptb;
ptb = &b;
printf("%d\n", *ptb);
pta = ptb;
printf("%d\n", *pta);
return 0;
}
(EAZY IDECの場合)
コンパイル結果
10
100
100
(Visual Studioの場合)
ビルド実行結果
10
100
100
アレサ「このプログラムの前半の命令文
int a = 10;
int* pta;
pta = &a;
printf("%d\n", *pta);
では
int* pta;
により作製されたint*型のポインタ変数ptaに
変数aのアドレス&aが代入されています。
ですので
ptaにアスタリスク演算子*をくっつけた
*ptaはアドレス&aのメモリに格納さデータ10をあらわすことになります。
printf("%d\n", *pta);
の実行結果が10になっているのがわかりますね。」
ソーラー「ぐえっ」
アレサ「次に
このプログラムの後半の部分の命令文
int b = 100;
int* ptb;
ptb = &b;
printf("%d\n", *ptb);
pta = ptb;
printf("%d\n", *pta);
をご覧ください。
int b = 100;
int* ptb;
ptb = &b;
により
作製されたポインタ変数ptbに
変数bのアドレスが代入されています。
ですので
ptbにアスタリスク演算子*をくっつけた
*ptbはアドレス&bのメモリに格納されている数値100をあらわすことになります。
printf("%d\n", *ptb);
の実行結果が100となっていることからもそのことがわかりますね。
次に
pta = ptb;
が実行されると
ポインタ変数
pta
には
ポインタ変数ptbの格納しているアドレス&bが代入されることになります。
ですので
*ptaは
アドレス&bのメモリに格納されている数値データ100をあらわすことになります。
printf("%d\n", *pta);
の実行結果が100となっていることからも
そのことがわかりますの。」
ソーラー「くわっ」
新規登録で充実の読書を
- マイページ
- 読書の状況から作品を自動で分類して簡単に管理できる
- 小説の未読話数がひと目でわかり前回の続きから読める
- フォローしたユーザーの活動を追える
- 通知
- 小説の更新や作者の新作の情報を受け取れる
- 閲覧履歴
- 以前読んだ小説が一覧で見つけやすい
アカウントをお持ちの方はログイン
ビューワー設定
文字サイズ
背景色
フォント
組み方向
機能をオンにすると、画面の下部をタップする度に自動的にスクロールして読み進められます。
応援すると応援コメントも書けます