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

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

  • 変数宣言時に初期化していれば、この筆者にも問題がわかったのではなかろうか?

    int *n = NULL;
    *n = 5;
    いくらポインタに対する理解が適当でも、このコードを動くと思う人は、ほとんどいないと思うのだが。
    • by Anonymous Coward
      たぶん、あの著者は「int *n = NULL」が「nの初期化である」と認識できないんじゃなかろうか。
      「そのすぐ後に5で上書きされる」とか思ってそう。

      #そのために「int* n = NULL」という記法が編み出されたというか。
      • その可能性はありますな。私はC++で書くときには必ず「int* n = ...」という記法を使っているのですが、いかんせんこれを使っている人が少なすぎ。
        • by epn (32606) on 2008年04月01日 20時20分 (#1323420)
          私もその記法です。
          int*と書けば、「整数のポインタ型」という型として認識出きるので混乱が少なくなります。typedefとか使ってpintとかにするとより良い感じですね。
          TAなどで指導する時にも、そのように説明してるんですけど、如何せん教科書と記法が違うのが最大の問題です。
          *の意味が宣言時と参照時?では違うということをきちんと説明してない本や人が多すぎorz
          親コメント
          • by Anonymous Coward
            >*の意味が宣言時と参照時?では違うということをきちんと説明してない本や人が多すぎorz
            初めてC言語に触ったとき、この文法で混乱しました。
            宣言時は*ありでHLなのに、使用時は*があると(HL)で、なしでHLだもんだから。

            #Z80は入門にはいい石だった。68000はもっといい石だった。

あと、僕は馬鹿なことをするのは嫌いですよ (わざとやるとき以外は)。-- Larry Wall

処理中...