新規記事の投稿を行うことで、非表示にすることが可能です。
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!
あとは関数ではないので、アドレスがないはず
つまり関数ポインタなどとして扱えない
ってところでしょうか