C言語 ポインタと変数の関係を見てみる






スポンサードリンク

これまでの復習も兼ねて、ポインタと変数の関係に付いて勉強してみたいと思います。

例【 メモリアドレス0 】に確保された変数【 da 】のアドレスを取り出す場合は
【 *po = &ida; 】(前回まで勉強してまいりました。)
極端ですが・・・【 printf("%p\n",*po);  】とすれば出力結果に【 メモリアドレス0  】と出力されます。
メモリアドレス0 メモリアドレス4 メモリアドレス5 メモリアドレス6 メモリアドレス7
da
※ポインタ宣言は【 int *po;  】とします
※int型とします。int型の場合は4バイト消費。

変数に代入された値を、メモリアドレスを指定して出力する場合
変数【 da 】に値を代入します。例【 da = 123; 】
変数のアドレスをポインタに代入します。【 po = &da; 】これでポインタに変数【 da 】のアドレス(メモリアドレス0)が代入された事になります。
(メモリアドレス0)を指定して出力したい場合
【 printf("%d\n",*po); 】とすれば出力結果に【 123 】と出力されます。
メモリアドレス0 メモリアドレス4 メモリアドレス5 メモリアドレス6 メモリアドレス7
da
【 123 】
※ポインタ宣言は【 int *po;  】とします
※int型とします。int型の場合は4バイト消費。


メモリアドレスに代入された値を変更
変数【 da 】に値を代入します。【 da = 123; 】
変数【 da 】のメモリアドレスをポインタ【 *po 】に代入。【 po = &ad; 】
変数の値を変更する場合は
【 da = 456; 】とする場合と【 *po = 456; 】とすれば(メモリアドレス0)の値は【 456 】に書き換えられます。
メモリアドレス0 メモリアドレス4 メモリアドレス5 メモリアドレス6 メモリアドレス7
da
【 123 】

【 456 】
※ポインタ宣言は【 int *po;  】とします
※int型とします。int型の場合は4バイト消費。

上記で説明したサンプルを読んで頂くと下サンプルが判りやすく理解できると思います。
サンプル

#include <stdio.h>
int main(void)
{
   int *po;
   int da = 123;

   po = &da;

   printf("初期値の値%d\n",da);
   printf("初期値の値%d\n",*po);

   da = 456;
   printf("変更された値%d\n",da);
   printf("変更された値%d\n",*po);

   *po = 789;
   printf("変更された値%d\n",da);
   printf("変更された値%d\n",*po);

return 0;
}


解説
変数の初期値をそれぞれ、変数【 da 】・ポインタ【 *po 】による値の変更確認です。
c言語ポインタと変数の関係
上記の出力結果
変更された同じ値が出力されます。


説明は以上です

あかかげまるのC言語入門はこちら!!

スポンサードリンク

パソコン勉強部屋 | パソコン勉強部屋2 | ADSL勉強部屋 | メール勉強部屋 | LAN勉強部屋 | ホームページ勉強部屋 | 自宅サーバー勉強部屋 | お役立ちソフトの部屋 | C言語勉強 | 無料ゲーム | 無料セキュリティー | Linuxのコーナー | あかかげまる | オンライン通販 | ショップブランドパソコン | DVDとCD編集ツール

 Subscribe in a reader


ページトップへ