回答編集履歴
2
変更
test
CHANGED
@@ -86,7 +86,7 @@
|
|
86
86
|
|
87
87
|
|
88
88
|
|
89
|
-
A *p[4];の意味は、構造体を指す事ができるポインターが4個格納できるエリアとして定義します。
|
89
|
+
A *p[4];の意味は、構造体を指す事ができるポインターが4個格納できるエリアとして定義しています。
|
90
90
|
|
91
91
|
定義はしましたが、中のアドレスは空っぽなので構造体のアドレスを入れています。
|
92
92
|
|
@@ -94,4 +94,6 @@
|
|
94
94
|
|
95
95
|
配列要素のp[1]は、*(p+1)とも書くことができます。(p+1)は、配列の2番目のアドレスなので変更は不可です。
|
96
96
|
|
97
|
+
例)printf("%d %d %d\n", (*p[1]).x, (*p[1]).y, (*(p+1))->x);
|
97
98
|
|
99
|
+
|
1
追加
test
CHANGED
@@ -79,3 +79,19 @@
|
|
79
79
|
|
80
80
|
|
81
81
|
上記の様に(*p[1]).x, (*p[1]).yと表す事ができます。
|
82
|
+
|
83
|
+
|
84
|
+
|
85
|
+
> ここの部分がわからないです。なぜp=a; (p+1)=&a[1]; (p+2)=&a[2]; (p+3)=&a[3]ではないのですか?
|
86
|
+
|
87
|
+
|
88
|
+
|
89
|
+
A *p[4];の意味は、構造体を指す事ができるポインターが4個格納できるエリアとして定義します。
|
90
|
+
|
91
|
+
定義はしましたが、中のアドレスは空っぽなので構造体のアドレスを入れています。
|
92
|
+
|
93
|
+
ポインタ配列へのアドレス代入なので、p[0]=&a[0]; p[1]=&a[1]; p[2]=&a[2]; p[3]=&a[3]; と書く事ができます。
|
94
|
+
|
95
|
+
配列要素のp[1]は、*(p+1)とも書くことができます。(p+1)は、配列の2番目のアドレスなので変更は不可です。
|
96
|
+
|
97
|
+
|