C言語の数値と文字と文字列の違い

プログラミング C言語

C言語で、数値と文字と文字列を間違えるとコンパイルできないことや、コンパイルできても想定した動作を行えない場合があります。数値は「1」、文字は「’1’」、文字列は「”1″」で表します。それぞれの違いをきちんと理解して使用しましょう。

スポンサーリンク

C言語の数値と文字と文字列の違い

C言語の数値と文字と文字列の違いは以下のようなものです。

1は数値(16進数で書くと0x01)
‘1’は文字(16進数で書くと0x31)
“1”は文字列(16進数で書くと0x31,0x00)

この違いがわかって使わないとエラーになったり、プログラムが暴走したりする可能性があります。

数値は普通の数値1、2、3・・・などと増えていく数です。

文字は数値とは違い元々は画面に表示するためのコードで、ASCIIコード(制御文字を除く)と呼ばれるものを指す場合もあります。

文字列は文字(複数個も可)の最後にNULL(0x00)が付加されたもので文字とは違い最低でも文字+NULL(0x00)の2バイト以上の変数になります。

数値と文字を間違えると?

万が一C言語で数値と文字を間違えるとどのようなことになるのかを見ておきます。

int main()
{
    int i  ;
    for( i = 0 ; i < '2' ;i++ ){
        printf("%d\n" ,i );
    }
    return 0;
}

万が一上記のようなコードを書くとループは「iが0と1の間」の2回ではなく、「iが0から0x32(10進数の50)まで」ループします。

まとめ

C言語で、数値と文字と文字列を間違えるとコンパイルできないことや、コンパイルできても想定した動作を行えない場合があります。

きちんと違いを理解して使用しましょう。

以上、C言語の数値と文字と文字列の違いでした。

タイトルとURLをコピーしました