• ベストアンサー

ポインタと()について

((void*)0)がNULLらしいのですが、(void*)0とキャストするだけではダメなのでしょうか?ポインタや配列関係?で()を厳重に多くしている場合をよく見ますが、何か理由があるのでしょうか。

質問者が選んだベストアンサー

  • ベストアンサー
  • jacta
  • ベストアンサー率26% (845/3158)
回答No.1

NULLの定義が(void*)0だと、 int array[10]; void *p = NULL[array]; としたときに意味が変わるからではないでしょうか。

その他の回答 (1)

  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.2

null pointer は「0」でいいんだけどなぁと思いつつ, マクロでは「これでもか!!」というくらい () を厳重にかけますね. もちろん, 「付けないとまずいことがある」(複雑な式を入れると, 演算子の優先順位によって意味が変わることがある) からです.

関連するQ&A