C言語の定数とリテラル:型、使い方、ベストプラクティス
定数とは
定数とは、プログラムが実行中に変更できない固定値のことです。これらの固定値はリテラルとも呼ばれます。
定数は、整数定数、浮動小数点定数、文字定数、文字列リテラルなどの基本データ型のいずれかになり得ます。列挙定数もあります。
定数は通常の変数と同様に扱われますが、定義後に値を変更できません。
整数リテラル
整数リテラルは10進数、8進数、16進数定数のいずれかです。プレフィックスで基数を指定します:16進数は0xまたは0X、8進数は0、10進数はプレフィックスなし。
整数リテラルには、U(unsigned)とL(long)の組み合わせであるサフィックスを付けることもできます。サフィックスは大文字小文字どちらでもよく、順序も任意です。
整数リテラルの例:
212 /* 合法 */ 215u /* 合法 */ 0xFeeL /* 合法 */ 078 /* 違法: 8は8進数の桁ではない */ 032UU /* 違法: サフィックスを繰り返せない */
様々なタイプの整数リテラルのその他の例:
85 /* 10進数 */ 0213 /* 8進数 */ 0x4b /* 16進数 */ 30 /* int */ 30u /* unsigned int */ 30l /* long */ 30ul /* unsigned long */
浮動小数点リテラル
浮動小数点リテラルは整数部、小数点、小数部、指数部を持ちます。10進形式または指数形式で表現できます。
10進形式で表現する場合、小数点、指数、または両方を含める必要があります。指数形式の場合、整数部、小数部、または両方を含める必要があります。符号付き指数はeまたはEで導入されます。
浮動小数点リテラルの例:
3.14159 /* 合法 */ 314159E-5L /* 合法 */ 510E /* 違法: 不完全な指数 */ 210f /* 違法: 小数点も指数もない */ .e55 /* 違法: 整数部または小数部が欠けている */
文字定数
文字リテラルは一重引用符で囲みます(例:'x')。これはchar型の単純な変数に格納できます。
文字リテラルは、通常の文字(例:'x')、エスケープシーケンス(例:'\t')、ユニバーサル文字(例:'\u02C0')のいずれかです。
Cにはバックスラッシュを前置すると特殊な意味を持つ文字があります。例:改行(\n)、タブ(\t)。
エスケープシーケンスコードの一覧:
| エスケープシーケンス | 意味 |
|---|---|
| \\ | \文字 |
| \' | '文字 |
| \" | "文字 |
| \? | ?文字 |
| \a | アラート/ベル |
| \b | バックスペース |
| \f | フォームフィード |
| \n | 改行 |
| \r | キャリッジリターン |
| \t | 水平タブ |
| \v | 垂直タブ |
| \ooo | 1〜3桁の8進数 |
| \xhh... | 1桁以上の16進数 |
いくつかのエスケープシーケンス文字を示す例:
Live Demo#include <stdio.h>
int main() {
printf("Hello\tWorld\n\n");
return 0;
}
実行結果:
Hello World
文字列リテラル
文字列リテラルまたは定数は二重引用符""で囲みます。文字列には文字リテラルと同様の文字が含まれます:通常の文字、エスケープシーケンス、ユニバーサル文字。
文字列リテラルを使用して長い行を複数行に分割し、ホワイトスペースで区切ることができます。
文字列リテラルの例。以下の3形式は同一の文字列です:
"hello, dear" "hello, \ dear" "hello, " "d" "ear"
定数の定義
C言語で定数を定義するには2つの簡単な方法があります:
- #defineプリプロセッサを使用する。
- constキーワードを使用する。
#defineプリプロセッサ
#defineプリプロセッサを使用して定数を定義する形式:
#define identifier value
詳細な例:
Live Demo#include <stdio.h>
#define LENGTH 10
#define WIDTH 5
#define NEWLINE '\n'
int main() {
int area;
area = LENGTH * WIDTH;
printf("value of area : %d", area);
printf("%c", NEWLINE);
return 0;
}
実行結果:
value of area : 50
constキーワード
constプレフィックスを使用して、特定の型を持つ定数を宣言できます:
const type variable = value;
詳細な例:
Live Demo#include <stdio.h>
int main() {
const int LENGTH = 10;
const int WIDTH = 5;
const char NEWLINE = '\n';
int area;
area = LENGTH * WIDTH;
printf("value of area : %d", area);
printf("%c", NEWLINE);
return 0;
}
実行結果:
value of area : 50
定数を大文字で定義するのは良いプログラミング習慣です。
C言語
- 交流回路における抵抗器、インダクタ、コンデンサの包括的まとめ
- C# キーワードと識別子:ルール、一覧、ベストプラクティス完全ガイド
- C# クラスとオブジェクト:堅牢な OOP の基礎
- C# 抽象クラスと抽象メソッドをマスターする:実践ガイド
- C# 部分クラスと部分メソッドを理解する
- C# sealed クラスとメソッドをマスターする:使用判断、実例、コードの安全性とパフォーマンス向上
- C++変数・リテラル・定数完全ガイド:基礎から実践まで
- C言語キーワードと識別子:実践ガイド
- C言語変数・定数・リテラル完全ガイド
- C 言語の変数、データ型、定数 – 実践ガイド
- C言語の入出力マスター:標準関数とファイル操作