第36回 メモリ5
今回も、C言語で使うメモリについて説明していきます。
では、ソースコードを見てください。
<ソースコード>
#include <stdio.h>
void main()
{
int b;
double *c,i;
double a[16];
for ( i=0.0,b=0; b<16; i+=0.1,b++ )
[b] = i;
b = 5;
printf( "変数 a[%d]は %5.2f で、アドレスは %d です\n", b, a[b], &a[b] );
c = &a[b];
printf( "変数 a[%d]は %5.2f で、アドレスは %d です\n", b, *c, c );
c = c+2;
printf( "変数 a[%d]は %5.2f で、アドレスは %d です\n", b+2, *c, c );
}
早速、コンパイルして実行してみましょう。
結果は、
変数 a[5]は 0.50 で、アドレスは 1244940 です
変数 a[5]は 0.50 で、アドレスは 1244940 です
変数 a[7]は 0.70 で、アドレスは 1244956 です
が表示されたはずです。
まず、9行目の変数が前回の<ソースコード>で使った int型の配列から double型に
変わったことに注目しましょう。
18行目でcのアドレスを2足してみましょう。
もちろん、前回のことを考えれば当然、double型のサイズは、8バイトでしたから、
単純に考えると1244940+(8X2)ですから1244956のアドレス番号を表示しました。
つまり、1加算すると、メモリ領域内を8バイトずつ移動すると考えると、2加算している
ので16バイト移動します。
前回同様、式を言葉で書くと、
コンピュータが決めたアドレス+(型の大きさ×数字)
計算すると
1244940+(8X2)で 1244956
ですね。
今回は、前回の復習もかねてdouble型で前回の説明をしました。
次回もこれを使ってメモリについて説明します。
それでは、次回をお楽しみに。
今回も、C言語で使うメモリについて説明していきます。
では、ソースコードを見てください。
<ソースコード>
#include <stdio.h>
void main()
{
int b;
double *c,i;
double a[16];
for ( i=0.0,b=0; b<16; i+=0.1,b++ )
[b] = i;
b = 5;
printf( "変数 a[%d]は %5.2f で、アドレスは %d です\n", b, a[b], &a[b] );
c = &a[b];
printf( "変数 a[%d]は %5.2f で、アドレスは %d です\n", b, *c, c );
c = c+2;
printf( "変数 a[%d]は %5.2f で、アドレスは %d です\n", b+2, *c, c );
}
早速、コンパイルして実行してみましょう。
結果は、
変数 a[5]は 0.50 で、アドレスは 1244940 です
変数 a[5]は 0.50 で、アドレスは 1244940 です
変数 a[7]は 0.70 で、アドレスは 1244956 です
が表示されたはずです。
まず、9行目の変数が前回の<ソースコード>で使った int型の配列から double型に
変わったことに注目しましょう。
18行目でcのアドレスを2足してみましょう。
もちろん、前回のことを考えれば当然、double型のサイズは、8バイトでしたから、
単純に考えると1244940+(8X2)ですから1244956のアドレス番号を表示しました。
つまり、1加算すると、メモリ領域内を8バイトずつ移動すると考えると、2加算している
ので16バイト移動します。
前回同様、式を言葉で書くと、
コンピュータが決めたアドレス+(型の大きさ×数字)
計算すると
1244940+(8X2)で 1244956
ですね。
今回は、前回の復習もかねてdouble型で前回の説明をしました。
次回もこれを使ってメモリについて説明します。
それでは、次回をお楽しみに。
スポンサーサイト