練習 [11] ポインタ①(1/5)

練習 1(提出プログラム名:p1101.c)

まず,このプログラム(p1101.c)をダウンロードしなさい.
p1101.c では int 型変数 x, char 型変数 y, double 型変数 z について,
それぞれがメモリ上の何番地に位置していて,そこから何バイトの領域が割り当てられているのか
を実行例のように表示させようとしているが未完成となっている.
(現状ではアドレス,バイト数ともに適切に表示されていない

サンプルプログラム 1 (sample1.c)を参考に p1101.c を編集して実行例のように動作するプログラムに仕上げなさい.

  • 【プログラムの実行例】(Windows 環境の場合)
    ※次の点に注意せよ(以下で表示されている番地はあくまでも例です):
    変数のアドレス(番地)について,3 つの変数が同じ番地を持つことはありません
    バイト数についても,3 つの変数が同じバイト数になることはありません
int 型変数 x の
   アドレス = 0061FF1C 番地
   バイト数 = 4 バイト

char 型変数 y の
   アドレス = 0061FF1B 番地
   バイト数 = 1 バイト

double 型変数 z の
   アドレス = 0061FF10 番地
   バイト数 = 8 バイト
  • 【プログラムの実行例】(Mac 環境の場合)
    ※次の点に注意せよ(以下で表示されている番地はあくまでも例です):
    変数のアドレス(番地)について,3 つの変数が同じ番地を持つことはありません
    バイト数についても,3 つの変数が同じバイト数になることはありません
int 型変数 x の
   アドレス = 0x16f34f968 番地
   バイト数 = 4 バイト

char 型変数 y の
   アドレス = 0x16f34f967 番地
   バイト数 = 1 バイト

double 型変数 z の
   アドレス = 0x16f34f958 番地
   バイト数 = 8 バイト

【過去にあったミス(減点となり,やり直しを命じられる)】
変数のアドレスやバイト数が 3 つともすべて同じ値なっている.
  3 つの変数はそれぞれ別々の変数なので,アドレス(番地)が 3 つで同じになることはありえない
 さらに,変数の型もそれぞれ違っており,たとえ処理系のバージョンが違ったとしても
 char 型のバイト数が int 型や double 型と同じということはありえない
インデントに不備がある(VSCode 上でインデントを自動で揃える作業をやっていない).


ミスが無いことを確認したら次の問題へ → [ 練習2 (p1102.c) ]