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

回答編集履歴

4

表現のブレを修正

2015/06/03 12:48

投稿

haru666
haru666

スコア1593

answer CHANGED
@@ -30,6 +30,6 @@
30
30
  ・変数/配列 アドレスについて読み取りのみ可能=アドレスは変更不可能
31
31
  ・ポインタ アドレスについて書き込み・読み取り双方が可能
32
32
 
33
- ポインタの加減算と配列の添え字は方言みたいなものです。
33
+ ポインタの加減算と配列の添え字は方言みたいなものです。
34
34
  そのため、私はポインタでも配列で使う添え字の方を重用した方が良いと思っています。
35
35
  アドレスの開始位置の変化しない、配列の記法の方がずっと理解しやすいからです。

3

余分な文章を削除

2015/06/03 12:48

投稿

haru666
haru666

スコア1593

answer CHANGED
@@ -1,5 +1,4 @@
1
1
  ポインタが難解だ、と言われるのは、ポインタ操作を重視する教育上の問題が大きいと思います。
2
- (中途半端な時期にポインタの加減算を教えることが悪い、と思っています。)
3
2
 
4
3
  yohhoyさん含め他の何人かの人が言うように、ポインタの加減算がわかりづらいです。
5
4
  **しかも実質上業務では必要ない。にも拘わらず、そこを気軽に教えることがおかしな気がします。**

2

余分な文を削除

2015/06/03 12:46

投稿

haru666
haru666

スコア1593

answer CHANGED
@@ -25,8 +25,7 @@
25
25
  //a++; // しかしこれはエラーになる、なぜか
26
26
  b++;
27
27
  ```
28
- ポインタと配列はだいたいのところでは同じような扱いができるんだよな、と曖昧に納得している人が多いのではないでしょうか。
29
- このことは、「取得アドレスに対する操作なので同じことができる」と簡潔に説明できます。
28
+ このことは、「取得したアドレスに対する操作なので同じことができる」と簡潔に説明できます。
30
29
  ポインタのみインクリメントできる理由は、ポインタはアドレスを新たに書き込むことが可能だからと説明できます。
31
30
 
32
31
  ・変数/配列 アドレスについて読み取りのみ可能=アドレスは変更不可能

1

トピック文を変更

2015/06/03 12:44

投稿

haru666
haru666

スコア1593

answer CHANGED
@@ -1,9 +1,11 @@
1
1
  ポインタが難解だ、と言われるのは、ポインタ操作を重視する教育上の問題が大きいと思います。
2
- 私の考えでは、アドレスに対する演算と、それ以外を上手く区別できる人とできない人で、ポインタの難度が大きく変わっています。
3
- 害があるのがポインタに格納したアドレスインクリメントす行為です。
2
+ (中途半端な時期にポインタの加減算教えことが悪い、と思っています。
4
3
 
4
+ yohhoyさん含め他の何人かの人が言うように、ポインタの加減算がわかりづらいです。
5
+ **しかも実質上業務では必要ない。にも拘わらず、そこを気軽に教えることがおかしな気がします。**
6
+ アドレスに対する演算と、それ以外を上手く区別できる人とできない人で、ポインタの難度が大きく変わっています。
7
+
5
8
  「ポインタの値(アドレス)を変更してみる」ところを早い時期から学習に組み込むケースをよく見ます。
6
- アドレスに加算したらどうなる、とかそういう話が多すぎると思います。
7
9
  どんなにそれでコードがシンプルになろうが、(ポインタに格納された)アドレスの値を直接変更するを教えることは最初は避けるべきだと思います。そもそもプログラムを作る上でそれらの知識は必要無いはずです。
8
10
 
9
11
  多くの場合、プログラマーはあるアドレスに対する書き込み/読み取り操作をしたいだけです。
@@ -24,7 +26,7 @@
24
26
  b++;
25
27
  ```
26
28
  ポインタと配列はだいたいのところでは同じような扱いができるんだよな、と曖昧に納得している人が多いのではないでしょうか。
27
- このことは、「取得アドレスに対する操作なので同じことができる」と完結に説明できます。
29
+ このことは、「取得アドレスに対する操作なので同じことができる」と簡潔に説明できます。
28
30
  ポインタのみインクリメントできる理由は、ポインタはアドレスを新たに書き込むことが可能だからと説明できます。
29
31
 
30
32
  ・変数/配列 アドレスについて読み取りのみ可能=アドレスは変更不可能