C++入門シリーズの第2回です。データは変数に格納され、各変数にはビットをどう解釈するかをコンパイラに伝える型があります。
変数とは#
変数とは、値を持つ名前付きメモリ領域です。使う前に型を宣言する必要があります:
int age = 30;
double price = 19.99;
std::string name = "Ada";
bool done = false;cpp基本データ型#
| 型 | サイズ(一般的) | 内容 |
|---|---|---|
bool | 1バイト | trueまたはfalse |
char | 1バイト | 1文字、例 'A' |
int | 4バイト | 整数 |
double | 8バイト | 浮動小数点数 |
void | — | 値なし(関数用) |
個数にはint、小数にはdoubleを使います。異なる範囲が必要ならlong、short、unsignedを使います。
初期化の方法#
C++には変数の初期化方法がいくつかあります:
int a = 5; // コピー初期化
int b(5); // 直接初期化
int c{5}; // 波括弧初期化 (C++11+)
int d{}; // 値初期化で0cpp波括弧初期化{}を推奨します。これはデータを失う縮小変換をコンパイル時に拒否します。
オーバーフローと縮小変換#
short s = 40000; // オーバーフローの恐れ: 40000 > shortの最大値(32767)
int x = 3.7; // 縮小: 3.7が静かに3になるcpp波括弧を使えば、静かにデータを壊す代わりにコンパイルエラーになります。
名前付き定数#
変更してはいけない値にはconstを使います:
const double PI = 3.14159;cppconst値は推論しやすく、コンパイラも最適化できます。
出力と入力#
#include <iostream>
int main() {
int age;
std::cout << "Enter your age: ";
std::cin >> age;
std::cout << "You are " << age << " years old.\n";
}cpp結論#
型は、変数が何を保持できるか、どの演算が意味を持つかを定義します。シリーズ次回は制御フローです。