C言語の文字型データ型


文字型データ型は文字です
1、文字データの表示
文字型データは、一重引用符で囲まれた文字です.例えば、'a'、'b'、'='、'+'、'?いずれも合法的な文字型データです.C言語では、文字型データには以下の特徴があります.
文字型データは単一引用符でのみ囲まれ、二重引用符または他の括弧では囲まれません.
文字型データは単一の文字のみで、文字列ではありません.
文字は、文字セットの任意の文字であってもよい.しかし、数字が文字型として定義されると、数値演算に参加できません.例えば「5」と「5」は違います.5'は文字型データで、演算に参加できません.
エスケープ文字
エスケープ文字は特殊な文字です.エスケープ文字は、1つまたは複数の文字の後に続く反斜線""で始まります.エスケープ文字は特定の意味を持ち、文字の本来の意味とは異なるので、「エスケープ」文字と呼ばれます.
エスケープ文字は、主に一般文字では表現しにくい制御コードを表すために使用されます.
よく使われるエスケープ文字とその意味
エスケープ文字
エスケープ文字の意味
ASCIIコード
折り返し改行
10
\t
次のタブ位置に横方向にジャンプ
9
\b
チェックアウト
8
\r
リターンマッチ
13
\f
ページング
12
\\
反斜線記号""
92
\'
一重引用符
39
\”
二重引用符
34
\a
ベルを鳴らす
7
\ddd
1~3桁の8進数で表す文字
 
\xhh
1~2ビット16進数で表す文字
 
2、文字タイプ説明子
文字変数のタイプ説明子はcharです.文字変数タイプ定義のフォーマットと書式規則は、整数変数と同じです.例えばchar a,b;
3、文字変数のメモリにおける記憶形式及び使用方法
各文字変数には1バイトのメモリ領域が割り当てられているため、1文字しか保存できません.文字値は、変数のメモリセルにASCIIコードとして格納されます.xの10進ASCII符号が120である場合、yの10進ASCII符号が121である.文字変数a、bに対して「x」と「y」の値を与える:a=「x」;b='y';実際には、a、bの2つのユニットに120および121のバイナリコードが格納される.例:文字変数に整数が付与される.
#include
int main(void)
{
    chara,b;
    a=120;
    b=121;
    printf("%c,%c
",a,b); printf("%d,%d
",a,b); return0; }

本プログラムではa,bを文字型と定義するが,付与文では整数値とする.結果から、a,b値の出力形式はprintf関数フォーマット列のフォーマットに依存し、フォーマットが「c」の場合、対応する出力の変数値は文字であり、フォーマットが「d」の場合、対応する出力の変数値は整数である.
これにより、
(1)小文字のASCIIコードが大文字のASCIIコードより大きい32
(2)後ろのASCIIコードは前のASCIIコードより大きい
(3)'3'を3に変えるには'3'-'0'=3
4、文字列
文字列は、二重引用符のペアで囲まれた文字列です.例えば、「CHINA」、「Cプログラム」、「$12.5」などは合法的な文字列です.
文字列と文字は異なり、主に次の違いがあります.
文字は一重引用符で囲まれ、文字列は二重引用符で囲まれています.
文字は単一の文字のみで、文字列には1つ以上の文字を含めることができます.
文字型データに文字変数を付与できますが、文字列に文字変数を付与することはできません.
文字は1バイトのメモリ領域を占めます.文字列のメモリバイト数は、文字列のバイト数に1を加えたものに等しい.追加された1バイトには、文字"0"(ASCIIコードは0)が格納されます.これは文字列の最後のフラグです.
たとえば、文字列「Cプログラム」がメモリに占めるバイト数は、10バイトです.
文字'a'と文字列"a"はいずれも1文字しかありませんが、メモリ内の状況は異なります.'a'はメモリに1バイト、「a」はメモリに2バイト、