C言語:型の大きさ
間違っている場所あったら優しく教えてね
プログラミング言語にはいくつかの型が存在する. 代表的なのは整数を表すint型, ascii文字を表すchar型が存在する . 型によって使うメモリの大きさが異なってくる. 今回はそれについて調べた.
調べ方
いかに示すコードを作成して, hoge
の部分にint
など型名を代入すると型の大きさが得られる.
#include int main(void){ printf(" hoge = %lu\n",sizeof(hoge)); return 0; }
実行結果
char = 1 // デフォルトはunsigened short = 2 int = 4 unsigned int = 4 float = 4 double = 8 long long = 8 size_t = 8
基本の型はこれくらいで良いだろう. unsigned
がつくと符号無しの型となる.
重要事項
型によって大きさが違うため表せるものが違います. 今回一番重要なのはchar型
が1バイトで表されていることです. 整数型のint型や他の方はメモリの大きさが処理系に依存してしまいます.つまりパソコンによってなんバイトの領域が使われるかが異なりす. それに対しchar型は常に1バイトであることが保証されています. これはポインタ(アドレス番号)を処理するとくに非常に役に立ちます.
char と unsigened char
char型はASCIIコードを表している整数型です. 1バイト(8ビット)なので0 ~ 255 まで表すことができる , なお aSCiiコードは127文字しか登録されていないので, charとunsigened char は実際あまり大差がない