練習 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) ]