l VisualC4.0 データの構造 '97.00.00
l.お知らせ 内容 LINK FILE   HTML Win PC Unix MS-DOS C C++ Mfc Java 
目次.C++言語_ 1 クラス 2 派生クラス 5 演算子のオーバーロード クラス(1)
 準備 3 オブジェクト 6 テンプレート 8 etc クラス(2)
 CC++ 4 フレンド・多重継承 7 メモリ確保・例外処理 未使用
変数   ストラクチャ     ( このページは bih-p_11.htm の複製 )

進数変換
Windoes95 の電卓を関数モードにすれば、10進数⇔16進数変換などが行えます。

T 変数
下図は、変数を宣言したときのようすを表しています。

char a; short int b; char c; char d[3]; long int e; の例。
変数宣言 
位置 
内容 
変数初期化  
char a
0 
21
a=21
short int b
1 
2 
 
21
b=21
char c
3 
00
(初期化しない)
char d[3]
4 
21
d[0]=21
 
5 
65
d[1]='A'
 
6 
00
(初期化しない)
long int e
7 
8 
9 
10 
 
 
 
21
e=21
char 型 1バイト(8ビット)
-128〜+127 の整数値が代入できます。
半角の文字は1バイトです。
全角の文字は2バイトです。

short int 型 2バイト(16ビット)
C言語では、int 型と略されます。
-32768〜+32767 の整数値が代入できます。

long int 型 4バイト(32ビット)
C++言語では、int 型と略されます。


位置 : メモリ上にこのような順番で配置されるという例です。

ポインタ変数を宣言して、上記の変数のアドレスを代入すると次のようになります。
変数宣言 
位置 
内容 
変数初期化  
char *p1
11 
12 
13 
14 
 
 
  
0
p1=&a
short int *p2
15 
16 
17 
18 
 
 
  
1
p2=&b
char *p3
19 
20 
21 
22 
 
 
  
3
p3=&c
ポインタ変数は int 型のデータです。
ただし、int 型変数に代入はできないことになっています。

これは VisualC++ の場合です。
C言語の場合は2バイトになります。
(C言語の int は2バイト。)


T ストラクチャ(構造体)
構造体の宣言は3段階に分けて考えます。

1.構造を宣言する。
例  struct S{ char a; int b; };
構造を宣言しても実際に使用されなければ、実行プログラムには全く反映されません。
デパートの詰合せ商品に例えるなら、詰め合わせの箱の種類ようなもので、実際の商品ではありません。
(ビールとコーヒーの詰合せ用の箱を、予約しました。)

2.その構造を格納する場所(オブジエクト)を宣言する。
例  struct S D1;
 
struct S D2;
実行プログラムには、char a と int b を格納する場所が確保されます。
この例では、S という構造をしたオブジェクト D1 D2 が作られます。
(S という型の、詰合わせ用の箱 D1 D2 を用意しました。)

3.初期化する。/代入する。
例  D1.a=10; D1.b=15;
  D1.b=20;
(D1 の箱に、10円のビールと15円のコーヒーを詰めました。)
(D1 の箱のコーヒーを20円の物に入れ替えました。)

これを図に表すと、次のようになります。
オブジェクト宣言 
メンバ 
位置 
内容 
メンバ初期化  
struct S D1
char a
0 
10
D1.a=10
 
int b
1 
2 
3 
4 
 
 
 
15
D1.b=15
struct S D2
char a
5 
00
(初期化しません)
 
int b
6 
7 
8 
9 
00
 
 
 
(初期化しません)
VisualC++ の例です。
(int 型=4バイト)


C言語の場合は
int 型は2バイトです。

ポインタ変数を宣言して、上記のアドレスを代入すると次のようになります。
変数宣言 
位置 
内容 
変数初期化  
S *p1
11 
11 
12 
13 
 
 
  
0
p1=D1
S *p2
12 
13 
14 
15 
 
 
  
5
p2=D2
char *p3
14 
15 
16 
17 
 
 
  
1
p3=&(D1.a)
char *p4
18 
19 
20 
21 
 
 
  
2
p4=&(D1.b)
VisualC++ の例です。
(ポインタ=4バイト)


C言語の場合は
ポインタは2バイトです。


T

  mtoga@sannet.ne.jp   登録日 '96. 6.15
URL : http://www.page.sannet.ne.jp/mtoga/index.html