northclimbの備忘録

徒然なるままに...です。

【C言語】型のまとめ

型とは何か

大雑把に説明するのであれば  「データの種類」  のことです。

例えば、「a」であれば文字型、「1」であれば整数型、「0.25」であれば浮動小数点型といったようにデータの形式によって呼び方が異なります。

以下、少し詳しく書きますが読み飛ばしても問題ないです。

「型」は「データ型」と呼ばれることもあります。基本的には同じ型であれば同じ操作が可能です。

(例)
1 + 2 や 3 + 2 という式を考えてみます。
1, 2, 3 は同じ整数型なので同じ演算(操作) '+' をすることができます。
また、'a' や 'x' は同じ文字型なので
例えば 'a' + 1, 'x' + 1 で次の文字を得ることができます。

データ型と呼ばれることからも分かるように、メモリなどの記憶装置上のデータをどのように読むべきかを示しています。また、プログラムで扱われているデータの形式をコンパイラインタプリタなどに伝えることで型検査が行われます。これによって、プログラムがメモリ上などに存在するデータを不正に書き換えないように前もって検査することができます。

型の種類

C言語における型の種類は以下の通りです。

種類型名バイト数値の範囲
型無しvoid
整数型short2-32768 ~ 32767
int2 or 41)-32768 ~ 32767
or
-2147483648 ~ 21474836471)
long4-2147483648 ~ 2147483647
long long8-9223372036854775808 ~
9223372036854775807
unsigned short20 ~ 65535
unsigned int2 or 41)0 ~ 65535
or
0 ~ 42949672951)
unsigned long40 ~ 4294967295
unsigned long long80 ~ 18446744073709551615
浮動小数点数float4 -3.4 \times 10^{38} ~
 3.4 \times 10^{38}
double8 -1.8 \times 10^{308} ~
 1.8 \times 10^{308}
文字型char10 ~ 255
signed char1-128 ~ 127

  • 1)コンパイル時の計算機によって決まります
  • 実際の使い方

    それでは、実際に型をどのように使うのか簡単な例を挙げてみます。コピペして実行するとcdと表示されるはずです。実行する環境がない人は適当に無料のrepl.itでも使ってみてください。下記の記事に登録方法等を"ざっくりと"書いてあるので、分からなければご覧ください。

    northclimb.hatenablog.com

    #include <stdio.h>
    
    int main(void) {
      char x = 'c';
      printf("%c%c\n", x, x+1);
      return 0;
    }
    

    関数の宣言

    まず、int main(void) { }の部分についてです。関数を宣言するには戻り値型 関数名(引数型 引数名){ 処理 }のように書きます。今回のmain関数は正常に終了したときにreturn 0されるので、戻り値は整数型intの0です。したがって、「戻り値型」としてintを指定しています。また、今回のmain関数は引数がない(つまり型無し)なので「引数型 引数名」の部分はvoidとなっています。もし、fという関数が型をfloat、名前をxとして引数を受け取り、戻り値の型を整数型long longにするのであれば、long long f(float x) { }のように書きます。

    変数の宣言

    次に、char x = 'c';の部分です。変数を宣言するには型 変数名;のように書きます。もし、宣言時に変数の中身を初期化したいのであれば、型 変数名 = 初期化時の値;と書きます。今回は後者の方を使っています。具体的には、文字型charを内部に格納する変数xを宣言しており、初期値として'c'が代入されています。もし、整数型unsigned shortを内部に格納する変数numberを宣言したいのであれば、unsigned short number;のように書きます。