回答編集履歴

1

ソースコード、配列の添字をマクロでなく数字に変更

2017/12/30 08:34

投稿

rubato6809
rubato6809

スコア1380

test CHANGED
@@ -6,11 +6,11 @@
6
6
 
7
7
  ```C
8
8
 
9
- int score[ROW][COL];
9
+ int score[3][2];
10
10
 
11
11
 
12
12
 
13
- for (int i = 0; i < ROW; i++) {
13
+ for (int i = 0; i < 3; i++) {
14
14
 
15
15
  printf(" (score + %d) = %p\n", i, (score + i)); // (A)
16
16
 
@@ -62,9 +62,7 @@
62
62
 
63
63
 
64
64
 
65
- (score + i) は score[i][0] のアドレスです。でも文法上 (score + i) は、まだ score[i][0] をポイントしていない、**score[i][0] と score[i][1] をまとめたモノ**をポイントしている、そのようにコンパイラは扱っている、そう解釈すれば事情が見えてきます。
66
-
67
- 即ち、「*」をつけて「*(score + i)」とアクセスし、ポインタを使って取りだした中身は**要素数2の配列**なのです。
65
+ (score + i) は score[i][0] のアドレスです。でも文法上 (score + i) は、まだ score[i][0] をポイントしていない、**score[i][0] と score[i][1] をまとめたモノ**をポイントしている、そのようにコンパイラは扱っている、即ち「*」をつけて「*(score + i)」とアクセスし、ポインタを使って取りだした中身は**要素数2の配列**なのです。そう解釈すれば事情が見えてきます。
68
66
 
69
67
 
70
68