Webエンジニア向けプログラミング解説動画をYouTubeで配信中!
▶ チャンネル登録はこちら

char型(チャー)とは | 意味や読み方など丁寧でわかりやすい用語解説

char型(チャー)の意味や読み方など、初心者にもわかりやすいように丁寧に解説しています。

作成日: 更新日:

読み方

日本語表記

チャー型 (チャーガタ)

英語表記

char (チャー)

用語解説

char型とは、プログラミングにおいて、たった1つの文字をコンピュータに記憶させるためのデータ型である。コンピュータの内部では、私たちが普段目にしているような文字を直接理解することはできない。すべての情報は「0」と「1」の組み合わせ、すなわち数値として扱われるため、文字をコンピュータで扱うためには、それぞれの文字に固有の数値を割り当てる必要がある。この割り当てられた数値が「文字コード」と呼ばれるものであり、char型は、この文字コードに基づいて、ある特定の1文字を表現するための入れ物だと考えると理解しやすい。

具体的に、多くのプログラミング言語、特にC言語やC++、Javaといった言語でchar型は利用される。たとえば、アルファベットの「A」や数字の「5」、記号の「#」といった1文字をプログラム内で扱う際にchar型が使われる。これらの文字は、それぞれ「A」なら65、「5」なら53、「#」なら35といった、特定の文字コード(多くの場合ASCIIコード)に対応する数値としてchar型の変数に格納される。プログラマがchar型の変数に「'A'」と代入すると、コンピュータ内部ではその文字「A」に対応する数値が格納され、プログラムがその変数を表示しようとする際には、格納された数値を再び文字「A」として画面に出力する、という仕組みで機能する。

char型のメモリサイズは、通常1バイトである場合が多い。1バイトは8ビットであり、2の8乗である256種類の異なる値を表現できる。この256種類の値は、0から255までの整数に対応する。ASCIIコードは、英数字や基本的な記号などを128種類の値(0から127)で定義しているため、1バイトのchar型であればASCII文字を十分に表現できる。しかし、世界には日本語、中国語、アラビア語など、ASCIIコードでは表現しきれない膨大な数の文字を持つ言語が多く存在する。これらの文字を扱うためには、より多くのバイト数、つまりより大きな数値の範囲を必要とする文字コード(例: Unicode)が使われる。

Java言語のchar型は、一般的なC言語のchar型とは異なり、2バイト(16ビット)のサイズを持つ。これは、UnicodeのUTF-16という文字コード体系を基準に設計されているためである。UTF-16は、世界中のほとんどの文字を表現できる、より広範な文字セットに対応している。そのため、Javaのchar型は、日本語のひらがなや漢字なども1文字として表現することが可能となる(ただし、すべてのUnicode文字が1つのJavaのchar型で表現できるわけではなく、一部の補助文字は2つのchar型を必要とすることがある)。このように、char型のバイトサイズは、プログラミング言語やその言語がどのような文字コードを基準としているかによって異なることがある点を理解しておく必要がある。

char型を扱う際の重要な注意点として、シングルクォーテーション「' '」で囲んで記述するというルールがある。例えば、「char myChar = 'X';」のように書く。これは、数値「X」と文字「X」を区別するために必要であり、プログラミング言語における文字リテラル(プログラム中に直接記述する文字の値)の表現方法として定められている。一方、複数の文字を組み合わせた「文字列」を表現する場合は、ダブルクォーテーション「" "」が使われる。例えば、「"Hello"」のように記述する。文字列は、実際にはchar型の連続、つまりchar型の配列として扱われることが多く、C言語では特にこの「char型の配列=文字列」という関係が顕著である。Javaのようなオブジェクト指向言語では、Stringという専用の型が用意されているが、そのString型も内部的にはchar型のデータ列を管理している。

char型は、単に文字を格納するだけでなく、その文字に対応する数値として扱うこともできる。例えば、C言語においてchar型の変数に数値として65を代入すると、表示時には「A」として解釈される。また、char型同士で算術演算を行うことも可能である。例えば、「'A' + 1」という演算は、文字「A」の文字コード値(65)に1を加えることになり、結果として文字「B」(文字コード66)が得られる。この特性は、文字の並び順を利用した処理(例: 小文字を大文字に変換する、特定の範囲内の文字をチェックする)などに活用されることがある。

しかし、異なる文字コードシステム間でchar型を扱う際には注意が必要である。ある環境で作成されたchar型のデータが、異なる文字コードを採用している別の環境で正しく表示されない「文字化け」が発生することがある。これは、同じ数値が異なる文字に対応付けられているために起こる現象である。システムエンジニアとしては、データの入出力においてどのような文字コードが使用されているかを常に意識し、必要に応じて適切な文字コード変換を行うことが重要となる。

現代のプログラミングでは、多くの言語でString型のような高レベルな文字列操作のための型が提供されており、プログラマが直接char型を意識して文字列を操作する機会は減っている。しかし、char型は文字データの最も基本的な単位であり、文字コードの仕組みやコンピュータがどのように文字を扱っているかを理解する上で不可欠な概念である。低レベルなメモリ操作や、特定の文字コードを直接扱う必要がある場合、あるいは組み込みシステムのようなリソースが限られた環境でのプログラミングにおいては、char型の理解と適切な利用が依然として重要となる。

以上がchar型に関する基本的な解説である。char型は、コンピュータにおける文字表現の基礎を担い、プログラミングの様々な場面でその存在を裏打ちしている。

関連コンテンツ

関連ITニュース

関連プログラミング言語