パスワードを忘れた? アカウント作成
この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。

ZDNetのポインタ解説記事で勘違い」記事へのコメント

  • by Anonymous Coward
    ダメなライターや、ザルなチェック体制は別に珍しくないが
    指摘されても問題が何か理解出来ていない編集にはビックリだな

    • Re: (スコア:2, 興味深い)

      by Anonymous Coward
      私が驚いたのは、筆者がIBMのチーフエンジニアとして執筆や講演にご活躍されていることですね。
      自分でプログラミングすることなんか全く無いんでしょうね。
      • Re: (スコア:1, すばらしい洞察)

        by Anonymous Coward
        いや、ポインタが理解できてなくても、適切な言語を選べば、動くプログラムを書けるってことで勇気づけられたよ。

        ポインタがいまいち理解できない人には朗報だ。
        • Re: (スコア:0, すばらしい洞察)

          by Anonymous Coward
          >ポインタがいまいち理解できない
          それで正しいと思います。
          Cのポインタは、
          - スカラ値への参照
          - 配列への参照
          - 動的オブジェクトの所有権管理
          - 反復子
          これら全然違う概念を一個で実現しようとする、そもそも無茶なキメラですよ。
          私はC++使いなんですが、C++なら、状況によって参照やスマートポインタや反復子を使い分けるところです。
          理解しようとするとかえって遠回りだと思います。
          • Re:まぁ、驚いたのは (スコア:1, すばらしい洞察)

            by Anonymous Coward on 2008年04月01日 16時27分 (#1323244)
            > Cのポインタは、
            > - スカラ値への参照
            > - 配列への参照
            > - 反復子

            すまん アセンブラだと、こういうコードかかない?
            #つーか普通のレジスタの使い方だと思ったけど
            #違うのかな?

            > - 動的オブジェクトの所有権管理
            これは わかんないけど
            親コメント
            • by Anonymous Coward
              アセンブラは何年もやってないから、間違ってても許してください。
              アドレスレジスタa0, a1, a2を、それぞれスカラへの参照、配列への参照、
              反復子として使おうとしてると思ってくださいよ。

              A: ; 配列
                  db 00h, 01h, 02h

              S: ; スカラ
                  db 20h

              main:
                  mov.l S,a0 ; ok. スカラ値Bへの参照をa0に入れている。
                  mov.b @a0,d0 ; ok. Bをd0に入れている。
                  mov.b @a0+1,d0 ; NG. Bは配列ではない。プログラマの意図に反している。
                  inc a0 ; NG. a0の指すところにデ
              • Re:まぁ、驚いたのは (スコア:2, すばらしい洞察)

                by Anonymous Coward on 2008年04月01日 23時14分 (#1323548)
                あぁ、なんとなく違和感の正体がわかりました。
                自分の場合、C/C++ではポインタはメモリのどこかを指しているものという認識しかないですし、配列はメモリ上に連続してとられたスカラ値の集まりという認識しかないです(*1)。
                だからポインタを持ってきて「スカラへの参照」「配列への参照」「反復子」として捉えることは無いですね。敢えて表現するならばポインタというものは一種類で「スカラ」「配列の先頭」「配列中のどこか」「ふめいなところ」を指していると捉えてる感覚でしょうか。

                *1)なので、必ずしもメモリ上で連続していないようなコレクションの実装を指して「配列(もしくは Array)」と呼ぶのは違和感がある。
                親コメント

海軍に入るくらいなら海賊になった方がいい -- Steven Paul Jobs

処理中...