回答編集履歴
2
訂正
answer
CHANGED
@@ -10,4 +10,9 @@
|
|
10
10
|
しかし、dose の指し示すポインタが仮に1024 で int のサイズが 4 であるとすると、&dose[3]=1024+3*4、&3[dose]=3+1024*4 となり、等しくありません。従って、解説は間違っています。
|
11
11
|
|
12
12
|
###追記
|
13
|
-
と書いた後で確かめて、実際に int であろうが long であろうが成り立つことがわかりました。この本のアドレス計算の部分はやはり誤りでしたが、配列に関しては逆にしても成り立ちます。
|
13
|
+
と書いた後で確かめて、実際に int であろうが long であろうが成り立つことがわかりました。この本のアドレス計算の部分はやはり誤りでしたが、配列に関しては逆にしても成り立ちます。
|
14
|
+
|
15
|
+
###訂正
|
16
|
+
よく調べもせずにいい加減なことを書きました。
|
17
|
+
私の書いた内容が誤りです。
|
18
|
+
訂正してお詫びします。
|
1
修正
answer
CHANGED
@@ -7,4 +7,7 @@
|
|
7
7
|
JAVA などの処理系では当然エラーになる構文ですが、C では配列のアドレスは単純に計算によって求められ、範囲外かどうかのチェックはありません。
|
8
8
|
従って、計算として正しいならば通ってしまいます。
|
9
9
|
|
10
|
-
しかし、dose の指し示すポインタが仮に1024 で int のサイズが 4 であるとすると、&dose[3]=1024+3*4、&3[dose]=3+1024*4 となり、等しくありません。従って、解説は間違っています。
|
10
|
+
しかし、dose の指し示すポインタが仮に1024 で int のサイズが 4 であるとすると、&dose[3]=1024+3*4、&3[dose]=3+1024*4 となり、等しくありません。従って、解説は間違っています。
|
11
|
+
|
12
|
+
###追記
|
13
|
+
と書いた後で確かめて、実際に int であろうが long であろうが成り立つことがわかりました。この本のアドレス計算の部分はやはり誤りでしたが、配列に関しては逆にしても成り立ちます。
|