C - リテラル:入門ガイド

こんにちは、未来のプログラマーさんたち!今日は、C言語の世界に踏み出し、特にリテラルに焦点を当てた興味深い旅を楽しみましょう。コードを書いたことがない方も心配しないでください。私はあなたの親切なガイドとして、ステップバイステップで進めていきます。このチュートリアルの終わりには、あなたがどれだけ学んだことに驚くことでしょう!

C - Literals

リテラルとは?

まず、リテラルとは何かを理解しましょう。プログラミングでは、リテラルはコード内に直接表示される固定値です。プログラミングの世界の定数のようなものです。変わりありませんし、信頼性があります。プログラムの構築ブロックと考えてください。

それでは、C言語におけるさまざまなリテラルの種類を見ていきましょう!

整数リテラル

整数リテラルは、小数点のない整数です。C言語では、整数をさまざまな方法で表現できます。以下にいくつかの例を見てみましょう:

int a = 42;        // 10進数(基数10)
int b = 052;       // 8進数(基数8)
int c = 0x2A;      // 16進数(基数16)
int d = 0b101010;  // 2進数(基数2、C99以降)

このコードでは:

  • 42 は10進数リテラル(私たちが普段使うもの)
  • 052 は8進数リテラル(先頭の0に注意)
  • 0x2A は16進数リテラル(先頭の0xに注意)
  • 0b101010 は2進数リテラル(先頭の0bに注意)

これらのリテラルはすべて同じ値を表しています:10進数の42。数字がさまざまな「服装」を着ることができるのは fascinante ですね。

整数サフィックス

整数リテラルには、型を指定するためにサフィックスを追加することもできます:

int e = 42L;    // 長整数
int f = 42U;    // 無符号整数
int g = 42UL;   // 無符号長整数
int h = 42LL;   // 長長整数(C99以降)

これらのサフィックスは、コンパイラがどの種類の整数を処理するかを理解するのに役立ちます。

浮動小数点リテラル

それでは、小数の世界に漂いましょう!浮動小数点リテラルは小数点のある数です。以下にいくつかの例を見てみましょう:

float pi = 3.14159;
double avogadro = 6.022e23;  // 科学記数法
long double planck = 6.62607015e-34L;  // Lサフィックス付きの長倍精度浮動小数点数

このコードでは:

  • 3.14159 は単純な浮動小数点リテラル
  • 6.022e23 は科学記数法を使用しています(e23は×10^23を意味します)
  • 6.62607015e-34L は長倍精度浮動小数点リテラル(Lサフィックスに注意)

浮動小数点リテラルはデフォルトで倍精度です。floatにしたい場合はFサフィックスを使用します:

float f = 3.14F;

文字リテラル

C言語における文字リテラルは、单引用符で囲まれた単一の文字を表します。以下にいくつかの例を見てみましょう:

char grade = 'A';
char newline = '\n';
char smiley = '\u263A';  // Unicode文字(C99以降)

このコードでは:

  • 'A' は単純な文字リテラル
  • '\n' は特別な文字(改行)
  • '\u263A' はUnicode文字(スマイリーの顔)

エスケープシーケンス

時々、直接入力できない文字を表現する必要があります。その際に便利なのがエスケープシーケンスです。エスケープシーケンスは常にバックスラッシュ(\)で始まります。以下に一般的なエスケープシーケンスの表を見ます:

エスケープシーケンス 意味
\n 改行
\t タブ
\ バックスラッシュ
\' 単引用符
\" 二重引用符
\0 ヌル文字

以下にエスケープシーケンスの使用例を見てみましょう:

char newline = '\n';
char tab = '\t';
char backslash = '\\';
char single_quote = '\'';
char double_quote = '\"';
char null_char = '\0';

printf("Hello\tWorld!\nThis is a backslash: \\\nAnd a quote: '");

このコードの出力は以下の通りです:

Hello   World!
This is a backslash: \
And a quote: '

文字列リテラル

最後に、文字列リテラルについて話しましょう。C言語では、文字列リテラルは二重引用符で囲まれた文字のシーケンスです。以下にいくつかの例を見てみましょう:

char* greeting = "Hello, World!";
char* multiline = "This is a\n"
"multi-line\n"
"string literal.";
char* unicode = u8"This is a Unicode string: \u263A";  // C11以降

このコードでは:

  • "Hello, World!" は単純な文字列リテラル
  • 多行文字列は、長い文字列を複数行に跨がるようにする方法を示しています
  • Unicode文字列は、文字列にUnicode文字を含める方法を示しています

C言語では、文字列リテラルは実際にはヌル文字('\0')で終わる文字の配列です。

結論

おめでとうございます!あなたはリテラルについて学び、C言語の世界に初めて踏み出しました。これらの基本的な構築ブロックは、あなたがプログラミングの旅を続ける上で非常に重要です。

練習は完璧を生みます。これらのさまざまなリテラルを使用してコードを書いてみてください。失敗を恐れず、学びましょう。それが熟練したプログラマーになる最良の方法です。

ハッピーコーディング、次回までの間も、Cの fascinante な世界を探求し続けてください!

Credits: Image by storyset