例えば、実数の1次元配列変数(変数名 fdata)のメモリ上の番地は、 仮に先頭のアドレスが0x0000833Dとすれば、 実数は32ビット(4バイト)のメモリ長なので、各要素のメモリ番地は下記のようになる。
番地 | 要素 |
0x0000833D | fdata[0] |
0x00008341 | fdata[1] |
0x00008345 | fdata[2] |
上記のメモリ番地は、実行時に定まるものなので、実行する度に異なるのが通常である。
ただし、配列の各要素間のメモリ番地の差は、そのデータの型の分だけになる
配列の要素アドレスは、要素を表現した先頭に
前述のfdateの例では、各要素の先頭に
以下、メモリ番地を表示する簡単なプログラムを示す。
&
を付け、次のように表現する。
&
をつけた値がメモリ番地になる。
&fdata[0]
0x0000833D
&fdata[1]
0x00008341
&fdata[2]
0x00008345
#include <stdio.h>
void main(){
float fdata[3];
int i;
for(i=0; i < 3; i++){
printf(”&fdata[%d] = %x \n”, i, &fdata[i]);
}
}
kojima hirohisa
2001-03-05