式 | 式自体の型 | 暗黙変換後の型 |
---|---|---|
array | char[20][10] | char(*)[10] |
array[0] | char(&)[10] | char* |
array[0][0] | char& | charの暗黙変換と同じ |
&array | char(*)[20][10] | - |
*array | char(&)[10] | char* |
&*array | char(*)[10] | - |
< 1> < 2> < 3> < 4> < 5> < 6> < 7> < 8> < 9> < 10> < 11> < 12> < 13> < 14> < 15> < 16> < 17> < 18> < 19> < 20> < 21> | int main(void){ int a[3][5]={{10,11,12,13,14},{20,21,22,23,24},{30,31,32,33,34}};//int[3][5] int *b[5]={NULL,NULL,NULL,NULL,NULL};//int*[5]を全てNULLで初期化しておきます int (*c)[5]=NULL;//int(*)[5]をNULLで初期化します //int &d[5];//コンパイルエラー「参照の配列は作れません」 int (&e)[5]=a[0];//int(&)[5] a[0]の別名としてeを作成します。(C++のみ) printf("%d\n",e[3]);//(1)eはa[0]の別名であり、同じものを示します。 //b[0]=a;//(2)コンパイルエラー「int[3][5]からint*へ変換できません」 b[0]=a[0];//(3)b[0]にa[0]の絶対ID(ポインタ)を代入 printf("%d\n",b[0][3]);//(4)b[0][3]はa[0][3]になります c=a;//(5)cにaの絶対ID(ポインタ)を代入 printf("%d\n",c[0][3]);//(6)c[0][3]はa[0][3]になります //printf("%d\n",b[1][3]);//(7)これはアクセス違反になります printf("%d\n",c[1][3]);//(8)c[1][3]はa[1][3]になります //終了待ち getchar(); return 0; } |
実体ID(絶対) | 実体の型 | 保持値 | 所属 |
---|---|---|---|
0x0012FF44 | int[3][5] | 略 | main(a,line 4) |
0x0012FF44 | int[5] | 略 | main(a[0],line 4) |
0x0012FF44 | int | 10 | main(a[0][0],line 4) |
0x0012FF48 | int | 11 | main(a[0][1],line 4) |
0x0012FF4C | int | 12 | main(a[0][2],line 4) |
0x0012FF50 | int | 13 | main(a[0][3],line 4) |
0x0012FF54 | int | 14 | main(a[0][4],line 4) |
0x0012FF58 | int[5] | 略 | main(a[1],line 4) |
0x0012FF58 | int | 20 | main(a[1][0],line 4) |
0x0012FF5C | int | 21 | main(a[1][1],line 4) |
0x0012FF60 | int | 22 | main(a[1][2],line 4) |
0x0012FF64 | int | 23 | main(a[1][3],line 4) |
0x0012FF68 | int | 24 | main(a[1][4],line 4) |
0x0012FF6C | int[5] | 略 | main(a[2],line 4) |
0x0012FF6C | int | 30 | main(a[2][0],line 4) |
0x0012FF70 | int | 31 | main(a[2][1],line 4) |
0x0012FF74 | int | 32 | main(a[2][2],line 4) |
0x0012FF78 | int | 33 | main(a[2][3],line 4) |
0x0012FF7C | int | 34 | main(a[2][4],line 4) |
0x0012FF30 | int*[5] | 略 | main(b,line 5) |
0x0012FF30 | int* | NULL | main(b[0],line 5) |
0x0012FF34 | int* | NULL | main(b[1],line 5) |
0x0012FF38 | int* | NULL | main(b[2],line 5) |
0x0012FF3C | int* | NULL | main(b[3],line 5) |
0x0012FF40 | int* | NULL | main(b[4],line 5) |
0x0012FF2C | int(*)[5] | NULL | main(c,line 6) |
0x0012FF28 | int(&)[5] | 0x0012FF44(main::a[0]) | main(e,line 8) |
通し記号 | 型 | 値 | 種別 |
---|---|---|---|
A | int(*)(const char*,...) | 0x00401470 | 関数(printf) |
B | 演算子( () )(その他、優先16、結合→) | ||
C | const char[4] | "%d\n" | 文字列定数 |
D | int(&)[5] | 略 | 参照(参照先:a[0](0x0012FF44)) |
E | 演算子( [] )(その他、優先16、結合→) | ||
F | const int | 3 | 定数 |
E' | 演算子Eの終点 | ||
B' | 演算子Bの終点 |
通し記号 | 型 | 値 | 種別 |
---|---|---|---|
D | int(&)[5] | 略 | 参照(参照先:a[0](0x0012FF44)) |
E | 演算子( [] )(その他、優先16、結合→) | ||
F | const int | 3 | 定数 |
E' | 演算子Eの終点 |
通し記号 | 型 | 値 | 種別 |
---|---|---|---|
D | int* | 0x0012FF44(a[0][0]) | 一時変数 |
E | 演算子( [] )(その他、優先16、結合→) | ||
F | const int | 3 | 定数 |
E' | 演算子Eの終点 |
通し記号 | 型 | 値 | 種別 |
---|---|---|---|
A | int(*)(const char*,...) | 0x00401470 | 関数(printf) |
B | 演算子( () )(その他、優先16、結合→) | ||
C | const char[4] | "%d\n" | 文字列定数 |
D | int& | 13 | 一時変数(参照先:a[0][3](0x0012FF50)) |
B' | 演算子Bの終点 |
通し記号 | 型 | 値 | 種別 |
---|---|---|---|
A | int*[5] | 略 | 変数(b) |
B | 演算子( [] )(その他、優先16、結合→) | ||
C | const int | 0 | 定数 |
B' | 演算子Bの終点 | ||
D | 演算子(=)(2項、算術、優先2、結合←) | ||
E | int[3][5] | 略 | 変数(a) |
F | 演算子( [] )(その他、優先16、結合→) | ||
G | const int | 0 | 定数 |
F' | 演算子Fの終点 |
通し記号 | 型 | 値 | 種別 |
---|---|---|---|
A | int** | 0x0012FF30(b[0]) | 一時変数 |
B | 演算子( [] )(その他、優先16、結合→) | ||
C | const int | 0 | 定数 |
B' | 演算子Bの終点 | ||
D | 演算子(=)(2項、算術、優先2、結合←) | ||
E | int[3][5] | 略 | 変数(a) |
F | 演算子( [] )(その他、優先16、結合→) | ||
G | const int | 0 | 定数 |
F' | 演算子Fの終点 |
通し記号 | 型 | 値 | 種別 |
---|---|---|---|
A | int*& | 0x00000000(NULL) | 一時変数(参照先:b[0](0x0012FF30)) |
B | 演算子(=)(2項、算術、優先2、結合←) | ||
C | int[3][5] | 略 | 変数(a) |
D | 演算子( [] )(その他、優先16、結合→) | ||
E | const int | 0 | 定数 |
D' | 演算子Fの終点 |
通し記号 | 型 | 値 | 種別 |
---|---|---|---|
A | int*& | 0x00000000(NULL) | 一時変数(参照先:b[0](0x0012FF30)) |
B | 演算子(=)(2項、算術、優先2、結合←) | ||
C | int(*)[5] | 0x0012FF44(a[0]) | 一時変数 |
D | 演算子( [] )(その他、優先16、結合→) | ||
E | const int | 0 | 定数 |
D' | 演算子Fの終点 |
通し記号 | 型 | 値 | 種別 |
---|---|---|---|
A | int*& | 0x00000000(NULL) | 一時変数(参照先:b[0](0x0012FF30)) |
B | 演算子(=)(2項、算術、優先2、結合←) | ||
C | int(&)[5] | 略 | 一時変数(参照先:a[0](0x0012FF44)) |
通し記号 | 型 | 値 | 種別 |
---|---|---|---|
A | int*& | 0x00000000(NULL) | 一時変数(参照先:b[0](0x0012FF30)) |
B | 演算子(=)(2項、算術、優先2、結合←) | ||
C | int* | 0x0012FF44(a[0][0]) | 一時変数 |
実体ID(絶対) | 実体の型 | 保持値 | 所属 |
---|---|---|---|
0x0012FF44 | int[3][5] | 略 | main(a,line 4) |
0x0012FF44 | int[5] | 略 | main(a[0],line 4) |
0x0012FF44 | int | 10 | main(a[0][0],line 4) |
0x0012FF48 | int | 11 | main(a[0][1],line 4) |
0x0012FF4C | int | 12 | main(a[0][2],line 4) |
0x0012FF50 | int | 13 | main(a[0][3],line 4) |
0x0012FF54 | int | 14 | main(a[0][4],line 4) |
0x0012FF58 | int[5] | 略 | main(a[1],line 4) |
0x0012FF58 | int | 20 | main(a[1][0],line 4) |
0x0012FF5C | int | 21 | main(a[1][1],line 4) |
0x0012FF60 | int | 22 | main(a[1][2],line 4) |
0x0012FF64 | int | 23 | main(a[1][3],line 4) |
0x0012FF68 | int | 24 | main(a[1][4],line 4) |
0x0012FF6C | int[5] | 略 | main(a[2],line 4) |
0x0012FF6C | int | 30 | main(a[2][0],line 4) |
0x0012FF70 | int | 31 | main(a[2][1],line 4) |
0x0012FF74 | int | 32 | main(a[2][2],line 4) |
0x0012FF78 | int | 33 | main(a[2][3],line 4) |
0x0012FF7C | int | 34 | main(a[2][4],line 4) |
0x0012FF30 | int*[5] | 略 | main(b,line 5) |
0x0012FF30 | int* | 0x0012FF44(main::a[0][0]) | main(b[0],line 5) |
0x0012FF34 | int* | NULL | main(b[1],line 5) |
0x0012FF38 | int* | NULL | main(b[2],line 5) |
0x0012FF3C | int* | NULL | main(b[3],line 5) |
0x0012FF40 | int* | NULL | main(b[4],line 5) |
0x0012FF2C | int(*)[5] | NULL | main(c,line 6) |
0x0012FF28 | int(&)[5] | 0x0012FF44(main::a[0]) | main(e,line 8) |
通し記号 | 型 | 値 | 種別 |
---|---|---|---|
A | int(*)(const char*,...) | 0x00401470 | 関数(printf) |
B | 演算子( () )(その他、優先16、結合→) | ||
C | const char[4] | "%d\n" | 文字列定数 |
D | int*[5] | 略 | 変数(b) |
E | 演算子( [] )(その他、優先16、結合→) | ||
F | const int | 0 | 定数 |
E' | 演算子Eの終点 | ||
G | 演算子( [] )(その他、優先16、結合→) | ||
H | const int | 3 | 定数 |
G' | 演算子Gの終点 | ||
B' | 演算子Bの終点 |
通し記号 | 型 | 値 | 種別 |
---|---|---|---|
D | int*[5] | 略 | 変数(b) |
E | 演算子( [] )(その他、優先16、結合→) | ||
F | const int | 0 | 定数 |
E' | 演算子Eの終点 | ||
G | 演算子( [] )(その他、優先16、結合→) | ||
H | const int | 3 | 定数 |
G' | 演算子Gの終点 |
通し記号 | 型 | 値 | 種別 |
---|---|---|---|
A | int*& | 0x0012FF44(a[0][0]) | 一時変数(参照先:b[0](0x0012FF30)) |
B | 演算子( [] )(その他、優先16、結合→) | ||
C | const int | 3 | 定数 |
B' | 演算子Bの終点 |
通し記号 | 型 | 値 | 種別 |
---|---|---|---|
A | int(*)(const char*,...) | 0x00401470 | 関数(printf) |
B | 演算子( () )(その他、優先16、結合→) | ||
C | const char[4] | "%d\n" | 文字列定数 |
D | int& | 13 | 一時変数(参照先:a[0][3](0x0012FF50)) |
B' | 演算子Bの終点 |
通し記号 | 型 | 値 | 種別 |
---|---|---|---|
A | int(*)[5] | 0x00000000(NULL) | 変数(c) |
B | 演算子(=)(2項、算術、優先2、結合←) | ||
C | int[3][5] | 略 | 変数(a) |
通し記号 | 型 | 値 | 種別 |
---|---|---|---|
A | int(*)[5] | 0x00000000(NULL) | 変数(c) |
B | 演算子(=)(2項、算術、優先2、結合←) | ||
C | int(*)[5] | 0x0012FF44(a[0]) | 一時変数 |
実体ID(絶対) | 実体の型 | 保持値 | 所属 |
---|---|---|---|
0x0012FF44 | int[3][5] | 略 | main(a,line 4) |
0x0012FF44 | int[5] | 略 | main(a[0],line 4) |
0x0012FF44 | int | 10 | main(a[0][0],line 4) |
0x0012FF48 | int | 11 | main(a[0][1],line 4) |
0x0012FF4C | int | 12 | main(a[0][2],line 4) |
0x0012FF50 | int | 13 | main(a[0][3],line 4) |
0x0012FF54 | int | 14 | main(a[0][4],line 4) |
0x0012FF58 | int[5] | 略 | main(a[1],line 4) |
0x0012FF58 | int | 20 | main(a[1][0],line 4) |
0x0012FF5C | int | 21 | main(a[1][1],line 4) |
0x0012FF60 | int | 22 | main(a[1][2],line 4) |
0x0012FF64 | int | 23 | main(a[1][3],line 4) |
0x0012FF68 | int | 24 | main(a[1][4],line 4) |
0x0012FF6C | int[5] | 略 | main(a[2],line 4) |
0x0012FF6C | int | 30 | main(a[2][0],line 4) |
0x0012FF70 | int | 31 | main(a[2][1],line 4) |
0x0012FF74 | int | 32 | main(a[2][2],line 4) |
0x0012FF78 | int | 33 | main(a[2][3],line 4) |
0x0012FF7C | int | 34 | main(a[2][4],line 4) |
0x0012FF30 | int*[5] | 略 | main(b,line 5) |
0x0012FF30 | int* | 0x0012FF44(main::a[0][0]) | main(b[0],line 5) |
0x0012FF34 | int* | NULL | main(b[1],line 5) |
0x0012FF38 | int* | NULL | main(b[2],line 5) |
0x0012FF3C | int* | NULL | main(b[3],line 5) |
0x0012FF40 | int* | NULL | main(b[4],line 5) |
0x0012FF2C | int(*)[5] | 0x0012FF44(main::a[0]) | main(c,line 6) |
0x0012FF28 | int(&)[5] | 0x0012FF44(main::a[0]) | main(e,line 8) |
通し記号 | 型 | 値 | 種別 |
---|---|---|---|
A | int(*)(const char*,...) | 0x00401470 | 関数(printf) |
B | 演算子( () )(その他、優先16、結合→) | ||
C | const char[4] | "%d\n" | 文字列定数 |
D | int(*)[5] | 0x0012FF44(a[0]) | 変数(c) |
E | 演算子( [] )(その他、優先16、結合→) | ||
F | const int | 0 | 定数 |
E' | 演算子Eの終点 | ||
G | 演算子( [] )(その他、優先16、結合→) | ||
H | const int | 3 | 定数 |
G' | 演算子Gの終点 | ||
B' | 演算子Bの終点 |
通し記号 | 型 | 値 | 種別 |
---|---|---|---|
D | int(*)[5] | 0x0012FF44(a[0]) | 変数(c) |
E | 演算子( [] )(その他、優先16、結合→) | ||
F | const int | 0 | 定数 |
E' | 演算子Eの終点 | ||
G | 演算子( [] )(その他、優先16、結合→) | ||
H | const int | 3 | 定数 |
G' | 演算子Gの終点 |
通し記号 | 型 | 値 | 種別 |
---|---|---|---|
A | int(&)[5] | 略 | 一時変数(参照先:a[0](0x0012FF44)) |
B | 演算子( [] )(その他、優先16、結合→) | ||
C | const int | 3 | 定数 |
B' | 演算子Bの終点 |
通し記号 | 型 | 値 | 種別 |
---|---|---|---|
A | int(*)(const char*,...) | 0x00401470 | 関数(printf) |
B | 演算子( () )(その他、優先16、結合→) | ||
C | const char[4] | "%d\n" | 文字列定数 |
D | int& | 13 | 一時変数(参照先:a[0][3](0x0012FF50)) |
B' | 演算子Bの終点 |
通し記号 | 型 | 値 | 種別 |
---|---|---|---|
A | int(*)(const char*,...) | 0x00401470 | 関数(printf) |
B | 演算子( () )(その他、優先16、結合→) | ||
C | const char[4] | "%d\n" | 文字列定数 |
D | int*[5] | 略 | 変数(b) |
E | 演算子( [] )(その他、優先16、結合→) | ||
F | const int | 1 | 定数 |
E' | 演算子Eの終点 | ||
G | 演算子( [] )(その他、優先16、結合→) | ||
H | const int | 3 | 定数 |
G' | 演算子Gの終点 | ||
B' | 演算子Bの終点 |
通し記号 | 型 | 値 | 種別 |
---|---|---|---|
D | int*[5] | 略 | 変数(b) |
E | 演算子( [] )(その他、優先16、結合→) | ||
F | const int | 1 | 定数 |
E' | 演算子Eの終点 | ||
G | 演算子( [] )(その他、優先16、結合→) | ||
H | const int | 3 | 定数 |
G' | 演算子Gの終点 |
通し記号 | 型 | 値 | 種別 |
---|---|---|---|
A | int*& | 0x00000000(NULL) | 一時変数(参照先:b[1](0x0012FF34)) |
B | 演算子( [] )(その他、優先16、結合→) | ||
C | const int | 3 | 定数 |
B' | 演算子Bの終点 |
通し記号 | 型 | 値 | 種別 |
---|---|---|---|
A | int(*)(const char*,...) | 0x00401470 | 関数(printf) |
B | 演算子( () )(その他、優先16、結合→) | ||
C | const char[4] | "%d\n" | 文字列定数 |
D | int& | ???????? | 一時変数(参照先:???(0x0000000C)) |
B' | 演算子Bの終点 |
通し記号 | 型 | 値 | 種別 |
---|---|---|---|
A | int(*)(const char*,...) | 0x00401470 | 関数(printf) |
B | 演算子( () )(その他、優先16、結合→) | ||
C | const char[4] | "%d\n" | 文字列定数 |
D | int(*)[5] | 0x0012FF44(a[0]) | 変数(c) |
E | 演算子( [] )(その他、優先16、結合→) | ||
F | const int | 1 | 定数 |
E' | 演算子Eの終点 | ||
G | 演算子( [] )(その他、優先16、結合→) | ||
H | const int | 3 | 定数 |
G' | 演算子Gの終点 | ||
B' | 演算子Bの終点 |
通し記号 | 型 | 値 | 種別 |
---|---|---|---|
D | int(*)[5] | 0x0012FF44(a[0]) | 変数(c) |
E | 演算子( [] )(その他、優先16、結合→) | ||
F | const int | 1 | 定数 |
E' | 演算子Eの終点 | ||
G | 演算子( [] )(その他、優先16、結合→) | ||
H | const int | 3 | 定数 |
G' | 演算子Gの終点 |
通し記号 | 型 | 値 | 種別 |
---|---|---|---|
A | int(&)[5] | 略 | 一時変数(参照先:a[1](0x0012FF58)) |
B | 演算子( [] )(その他、優先16、結合→) | ||
C | const int | 3 | 定数 |
B' | 演算子Bの終点 |
通し記号 | 型 | 値 | 種別 |
---|---|---|---|
A | int(*)(const char*,...) | 0x00401470 | 関数(printf) |
B | 演算子( () )(その他、優先16、結合→) | ||
C | const char[4] | "%d\n" | 文字列定数 |
D | int& | 23 | 一時変数(参照先:a[1][3](0x0012FF64)) |
B' | 演算子Bの終点 |