2016年11月08日
sizeof演算子は関数ではない【C言語】
■sizeofは演算子!
なにげなくお世話になっているsizeof演算子。
mallocなどと一緒にあたりまえのように使いますが
sizeofについて説明しなくてはならなくなり
細かく調べていたら、sizeofは関数なの?演算子なの?と
疑問がわいてきました。
sizeofは演算子であって、関数ではないということですが
戻り値の型はsize_tだよ とか
使用するときは
s = sizeof (int) ;
こんな風にあたりまえのように( )をつけて使うので
戻り値があって( )に引数が入って、どう見たって関数じゃん! と思ってしまいます。
■関数とは違う点
sizeofを使う時には慣例的に( )をつけてしまいますが
実は( )をつけなくてもいいんです。
型名のバイト数を調べたいときは( )をつけるけど
変数や式のときはつけなくてよい
s = sizeof data ;
でOK!
あとは関数ではないので、アドレスがないはず
つまり関数ポインタなどとして扱えない
ってところでしょうか
なにげなくお世話になっているsizeof演算子。
mallocなどと一緒にあたりまえのように使いますが
sizeofについて説明しなくてはならなくなり
細かく調べていたら、sizeofは関数なの?演算子なの?と
疑問がわいてきました。
sizeofは演算子であって、関数ではないということですが
戻り値の型はsize_tだよ とか
使用するときは
s = sizeof (int) ;
こんな風にあたりまえのように( )をつけて使うので
戻り値があって( )に引数が入って、どう見たって関数じゃん! と思ってしまいます。
■関数とは違う点
sizeofを使う時には慣例的に( )をつけてしまいますが
実は( )をつけなくてもいいんです。
型名のバイト数を調べたいときは( )をつけるけど
変数や式のときはつけなくてよい
s = sizeof data ;
でOK!
あとは関数ではないので、アドレスがないはず
つまり関数ポインタなどとして扱えない
ってところでしょうか
【このカテゴリーの最新記事】
-
no image
-
no image
-
no image
この記事へのトラックバックURL
https://fanblogs.jp/tb/5603521
※言及リンクのないトラックバックは受信されません。
この記事へのトラックバック