[2283] Re:C言語ポインタ完全制覇、"「式」に対するsizeof"のキモは?
投稿者:(ぱ)こと管理人
2022/05/08 00:15:24
はじめまして。
>「2種類の使い方」"sizeof(型名)"と"sizeof 式"のキモ(使い方・形式は何が違うと言っているのか)は、
>・括弧の有無、
>・型名に対してsizeofを使うか、式に対して使うか、
>のいずれなのでしょうか?
後者です。
型名に対するsizeof … sizeof(型名)
式に対するsizeof … sizeof 式
です。
>このページの下の方の例で"sizeof(hoge)"と、型名でないhogeに対してsizeof()と
>括弧ありの用法をしているので、式に対して使う場合は括弧が必要である、という
>可能性は無いとは思いますが…
式に対して使う場合は括弧が必要である、ということはなく、逆に、
型名に対して使う場合は括弧が必須です。上の例、および本の中の例で
「sizeof(型名)」となっている通りです。
もちろん、式を括弧で囲んだものも式ですから、sizeof(式)という書き方は可能です。
優先順位の低い演算子を含む式なら、括弧が必須になるでしょう。「sizeof 3 + 5」は
sizeof(int) + 5でintが4バイトなら9になるでしょうが、「sizeof(3 + 5)」は
sizeof(8)なので4です。
その意味では、sizeof(hoge)の場合は括弧は必須ではありませんが、
私はこういう場合たいてい括弧を付けるので書いてしまっています。
>ページのほぼ中央部で"「sizeof 式」形式にメリットがあるのは…"
>と書かれており、形式、と言われると、式に対して使うのかそれとも型名に対してか、
>というよりは、括弧の有無のことか?とも迷ってしまいまして…
言葉がまずかったですかね。括弧の有無のことを言いたかったわけではなくて、
あくまで「式に対して使うのかそれとも型名に対してか」のつもりでした。