C++変数・リテラル・定数完全ガイド:基礎から実践まで
C++ 変数、リテラル、定数
このチュートリアルでは、C++における変数、リテラル、定数について、実例を交えて学習します。
C++ 変数
プログラミングにおいて、変数はデータを保持する「容器(ストレージ領域)」です。
ストレージ領域を特定するため、各変数には一意の名前(識別子)を付けます。例えば:
int age = 14;
ここでは、age は int 型の変数で、整数値 14 が代入されています。
int 型は整数のみを扱えます。小数や指数を扱う場合は double 型を使用します。
データ型の詳細については次のチュートリアルで学びます。
変数の値は変更可能です。だからこそ「変数」と呼ばれます。
int age = 14; // age は 14
age = 17; // age は 17
変数命名のルール
- 変数名には英字、数字、アンダースコア
_のみ使用可能 - 変数名を数字で始めることはできない
- 変数名は小文字で始めるのが推奨(例: name は Name より好ましい)
- キーワードを変数名にすることはできない(例:
intは整数を表すキーワード) - アンダースコアで始めることは可能だが、推奨されない
C++ リテラル
リテラルは固定値を表すデータで、コード内で直接使用できます。例: 1, 2.5, 'c' など。
これらはリテラルです。なぜなら、これらの項目に異なる値を代入することはできないからです。
C++の主なリテラル種類:
1. 整数リテラル
整数リテラルは、小数部や指数部を持たない数値リテラルです。C++には3種類あります:
- 10進数(基数10)
- 8進数(基数8)
- 16進数(基数16)
例:
10進数: 0, -9, 22 など 8進数: 021, 077, 033 など 16進数: 0x7f, 0x2a, 0x521 など
C++では、8進数は 0 で始まり、16進数は 0x で始まります。
2. 浮動小数点リテラル
小数形式または指数形式を持つ数値リテラルです。例:
-2.0
0.0000234
-0.22E-5
E-5 = 10-53. 文字リテラル
単一の文字を一重引用符で囲んで作成します。例: 'a', 'm', 'F', '2', '}' など。
4. エスケープシーケンス
入力できない文字や、C++で特別な意味を持つ文字を扱う必要がある場合があります。例: 改行(Enter)、タブ、クエスチョンマークなど。
これらを使うためにエスケープシーケンスを使用します。
| エスケープシーケンス | 文字 |
|---|---|
\b | バックスペース |
\f | フォームフィード |
\n | 改行 |
\r | キャリッジリターン |
\t | 水平タブ |
\v | 垂直タブ |
\\ | バックスラッシュ |
\' | 一重引用符 |
\" | 二重引用符 |
\? | クエスチョンマーク |
\0 | ヌル文字 |
5. 文字列リテラル
文字列リテラルは、二重引用符で囲まれた文字の並びです。例:
"good" | 文字列定数 |
"" | 空文字列定数 |
" " | 6つの空白からなる文字列定数 |
"x" | 1文字の文字列定数 |
"Earth is round\n" | 改行付き文字列 |
文字列の詳細はC++文字列チュートリアルで学びます。
C++ 定数
C++では、値を変更できない変数を作成できます。それには const キーワードを使用します。例:
const int LIGHT_SPEED = 299792458;
LIGHT_SPEED = 2500; // エラー! LIGHT_SPEED は定数です。
ここでは const キーワードで LIGHT_SPEED という定数を宣言しています。LIGHT_SPEED の値を変更しようとするとエラーになります。
定数はプリプロセッサディレクティブ #define でも作成できます。詳細はC++マクロチュートリアルで学びます。
C言語