工業製造
産業用モノのインターネット | 工業材料 | 機器のメンテナンスと修理 | 産業プログラミング |
home  MfgRobots >> 工業製造 >  >> Industrial programming >> C言語

C++定数とリテラル完全解説:型、構文、ベストプラクティス

定数とは、プログラムが変更できない固定値のことで、リテラルと呼ばれます。

定数は基本データ型のいずれでもよく、整数リテラル、浮動小数点リテラル、文字リテラル、文字列リテラル、ブールリテラルに分類できます。

再度になりますが、定数は通常の変数と同様に扱われますが、定義後に値を変更できません。

整数リテラル

整数リテラルは、10進数、8進数、16進数の定数にできます。プレフィックスで基数を指定します:16進数は 0x または 0X、8進数は 0、10進数はプレフィックスなし。

整数リテラルには、unsigned と long を表す U と L の組み合わせのサフィックスを付けることもできます。サフィックスは大文字小文字どちらでもよく、順序も任意です。

整数リテラルの例:

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         // 違法: 整数部または小数部が欠けている

ブールリテラル

標準C++キーワードの一部として2つのブールリテラルがあります:

true の値を 1 と、false の値を 0 と見なすべきではありません。

文字リテラル

文字リテラルは一重引用符で囲みます。リテラルが L(大文字のみ)で始まる場合、ワイド文字リテラル(例:L'x')であり、wchar_t 型の変数に格納する必要があります。それ以外の場合、狭い文字リテラル(例:'x')であり、単純な char 型の変数に格納できます。

文字リテラルは、普通の文字(例:'x')、エスケープシーケンス(例:'\t')、ユニバーサル文字(例:'\u02C0')のいずれかです。

C++には、バックスラッシュを前に付けると特別な意味を持つ文字があり、改行(\n)やタブ(\t)などを表すために使用されます。主なエスケープシーケンス:

エスケープシーケンス意味
\\\ 文字
\'' 文字
\"" 文字
\?? 文字
\aアラート/ベル
\bバックスペース
\fフォームフィード
\n改行
\rキャリッジリターン
\t水平タブ
\v垂直タブ
\ooo1〜3桁の8進数
\xhh...1桁以上の16進数

いくつかのエスケープシーケンス文字を示す例:

Live Demo
#include <iostream>
using namespace std;
int main() {
    cout << "Hello\tWorld\n\n";
    return 0;
}

上記コードをコンパイルして実行すると、以下の結果が得られます:

Hello World

文字列リテラル

文字列リテラルは二重引用符で囲みます。文字列には、文字リテラルと同様に、普通の文字、エスケープシーケンス、ユニバーサル文字が含まれます。

長い行を文字列リテラルを使って複数行に分割し、ホワイトスペースで区切ることができます。

文字列リテラルの例。以下の3形式は同一の文字列です:

"hello, dear"
"hello, \ dear"
"hello, " "d" "ear"

定数の定義

C++で定数を定義するには、以下の2つの簡単な方法があります:

#define プリプロセッサ

#define プリプロセッサで定数を定義する形式:

#define identifier value

詳細な例:

Live Demo
#include <iostream>
using namespace std;
#define LENGTH 10
#define WIDTH 5
#define NEWLINE '\n'
int main() {
    int area;
    area = LENGTH * WIDTH;
    cout << area;
    cout << NEWLINE;
    return 0;
}

上記コードをコンパイルして実行すると、以下の結果が得られます:

50

const キーワード

const 接頭辞を使って、特定の型を持つ定数を宣言できます:

const type variable = value;

詳細な例:

Live Demo
#include <iostream>
using namespace std;
int main() {
    const int LENGTH = 10;
    const int WIDTH = 5;
    const char NEWLINE = '\n';
    int area;
    area = LENGTH * WIDTH;
    cout << area;
    cout << NEWLINE;
    return 0;
}

上記コードをコンパイルして実行すると、以下の結果が得られます:

50

定数は大文字で定義するのが良いプログラミング習慣です。

C言語

  1. C++変数・リテラル・定数完全ガイド:基礎から実践まで
  2. C++データ型完全ガイド:基本型、修飾子、ベストプラクティス
  3. C++演算子完全ガイド:算術・代入・関係・論理・ビット演算子と実例
  4. C++コメント完全ガイド:読みやすく保守しやすいコードのためのベストプラクティス
  5. C++クラステンプレート完全ガイド:実践的なジェネリックプログラミング
  6. C言語変数・定数・リテラル完全ガイド
  7. C言語の定数とリテラル:型、使い方、ベストプラクティス
  8. C++プログラミング言語:概要と主要機能
  9. C++定数とリテラル完全解説:型、構文、ベストプラクティス
  10. C++演算子完全ガイド:種類、使い方、ベストプラクティス
  11. Python 変数・定数・リテラル: 包括的ガイド