タグ

Cに関するanemoのブックマーク (2)

  • C/C++ ランゲージ・リファレンス

    左辺値と右辺値 オブジェクト とは、検査が可能で保管場所とすることのできるストレージの領域のことです。左辺値 は、このようなオブジェクトを参照する式です。左辺値は、その指定するオブジェクトの変更を必ずしも許可するわけではありません。例えば、const オブジェクトは、変更が不可能な左辺値です。用語 変更可能な左辺値 は、左辺値によって指定オブジェクトの変更および検査が許可されていることを強調する場合に使用します。次のオブジェクト・タイプは左辺値ですが、変更可能な左辺値ではありません。 配列型 不完全型 const 修飾型 オブジェクトが構造体または共用体型であり、そのメンバーの 1 つが const 修飾型を持つ場合。 これらの左辺値は変更可能ではないため、代入ステートメントの左辺に置くことはできません。 用語 右辺値 は、メモリー内の同じアドレスに保管されるデータ値を

    anemo
    anemo 2009/01/19
    C言語における関数指定子とC++における関数ポインタの扱いの違い
  • NULL と 0 - odz buffer

    なぜだか最近 C++ ネタが多いな。研究では JavaPython か Shell Script がほとんどなんだけど。 ここでは、NULLは((void*)0)であって、0ではないのだから、場合によっては動作が違うよ……ということが書かれています。 でも面白いことに、C++ではNULLと0は完全に同じです。 #define NULL 0とされています。 そもそも、もしもNULLの型がvoid*だったのなら、C++では、char*に対してそのままの代入が行えません。 なのでC++では、NULLと0は完全に同じものです。(UNIXだと、違うとでも言うのでしょうか?) ええと、C++ では NULL と 0 が同一なんて規定があったっけ? NULL マクロを使うのをやめてリテラルの 0 を使えという話はありがちだけど、とりあえず GCC-4.0 では NULL と 0 が同一なわけではな

    NULL と 0 - odz buffer
    anemo
    anemo 2009/01/02
  • 1