アカウント名:
パスワード:
p = &n; // pにnのポインタを代入
"指差し変数"とか"矛先変数" (センスありません)とかにしておけば、「pにnの鉾先を代入」ではなく「pの鉾先をnに向ける」でなければならないことが、比較的容易に理解できたのではないかと思います。
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
アレゲはアレゲを呼ぶ -- ある傍観者
CとC++ (スコア:1)
単に
int n; // 整数型変数nを定義
int *p; // 整数ポインタ型変数pを定義
n = 5; // nに5を代入
p = &n; // pにnのポインタを代入
*p = 10; // pがポイントする変数に10を代入
見たいに書けば間違いも起こりにくくわかりやすい気がするんですけど。
Re: (スコア:1)
あくまでも私の経験上の話です。
ここを
「pにnのポインタを代入」
と説明した人は、たいていポインタを正しく理解していませんでした。
一方、ここを
「pにnのアドレスを代入」
と説明した人は、全員ポインタを正しく理解できていました。
また、前者のポインタを代入と説明した人の中には
アドレスであることをふまえてあえて前者の「ポインタを代入」と説明する人がいました。
しかし、その人は値渡し/参照渡しの違いを正しく説明できませんでした。
Re:CとC++ (スコア:0)
> と説明した人は、たいていポインタを正しく理解していませんでした。
いや、この文は間違いなくポインタを正しく理解してないし。
「pにnへのポインタを代入」
ならまだしも。
そもそもの根本原因 (スコア:1, 興味深い)
最初に K&R 本を翻訳したとき、"pointer" を単純に "ポインタ" と訳してしまったことが悲劇の始まりのような気がします。 ポインタという片仮名を使ったことにより、ポインタという単語から意味を汲み取れない人が多く生まれ、それがおかしな理解を生んでいるのではないでしょうか?
"指差し変数"とか"矛先変数" (センスありません)とかにしておけば、「pにnの鉾先を代入」ではなく「pの鉾先をnに向ける」でなければならないことが、比較的容易に理解できたのではないかと思います。