teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

5

追加

2017/12/30 10:32

投稿

A.Ichi
A.Ichi

スコア4070

answer CHANGED
@@ -14,4 +14,11 @@
14
14
  そのアドレスの前に’*’を付けると値となります。
15
15
 
16
16
  > printf("\n *(score + %d)= %d\t\n\n",i, *(score + i) );
17
- ワーニングはドレスを%dで表示させようとされたからです。
17
+ ワーニングはドレスを%dで表示させようとされたからです。
18
+
19
+ こちらの方が良いですね
20
+ ```c
21
+ for (i = 0; i < row*col; i++ ){
22
+ printf("*((int *)score + %d)) = %d\t\n",i, *((int *)score + i));
23
+ }
24
+ ```

4

変更

2017/12/30 10:31

投稿

A.Ichi
A.Ichi

スコア4070

answer CHANGED
@@ -14,4 +14,4 @@
14
14
  そのアドレスの前に’*’を付けると値となります。
15
15
 
16
16
  > printf("\n *(score + %d)= %d\t\n\n",i, *(score + i) );
17
- ワーニングはドレスを%dで表示させようとされたからです。**(score + i)にすれば良いです。
17
+ ワーニングはドレスを%dで表示させようとされたからです。

3

訂正

2017/12/30 09:50

投稿

A.Ichi
A.Ichi

スコア4070

answer CHANGED
@@ -1,11 +1,13 @@
1
1
  > そもそも、そもそも、*(score+0)は何を示しているのでしょうか。は何を示しているのでしょうか。
2
2
 
3
- scoreのアドレスの0番目のアドレスを示しています。*(score+1)は二番目のアドレスを指しています。
3
+ scoreのアドレスの0番目のアドレスを示しています。*(score+1)はscre[]の二番目のアドレスを指しています。
4
- *(score+2)は3番目なので &score[1][0]という事になります。
4
+ *(score+2)は3番目なので &score[2][0]という事になります。
5
5
  ですので下記の様にも書けます。
6
6
  ```c
7
+   int *scorep;
8
+ scorep = (int *)score;
7
9
  for (i = 0; i < row*col; i++ ){
8
- printf("*(*(score + %d)) = %d\t\n",i, *(*(score + i)));
10
+ printf("*(scorep + %d) = %d\t\n",i, *(scorep + i));
9
11
  }
10
12
  ```
11
13
 

2

変更

2017/12/30 09:48

投稿

A.Ichi
A.Ichi

スコア4070

answer CHANGED
@@ -9,4 +9,7 @@
9
9
  }
10
10
  ```
11
11
 
12
- そのアドレスの前に’*’を付けると値となります。
12
+ そのアドレスの前に’*’を付けると値となります。
13
+
14
+ > printf("\n *(score + %d)= %d\t\n\n",i, *(score + i) );
15
+ ワーニングはドレスを%dで表示させようとされたからです。**(score + i)にすれば良いです。

1

変更

2017/12/30 03:19

投稿

A.Ichi
A.Ichi

スコア4070

answer CHANGED
@@ -7,4 +7,6 @@
7
7
  for (i = 0; i < row*col; i++ ){
8
8
  printf("*(*(score + %d)) = %d\t\n",i, *(*(score + i)));
9
9
  }
10
- ```
10
+ ```
11
+
12
+ そのアドレスの前に’*’を付けると値となります。