blog.dopana

Back

C++入門シリーズの第2回です。データは変数に格納され、各変数にはビットをどう解釈するかをコンパイラに伝える型があります。

変数とは#

変数とは、値を持つ名前付きメモリ領域です。使う前に型を宣言する必要があります:

int age = 30;
double price = 19.99;
std::string name = "Ada";
bool done = false;
cpp

基本データ型#

サイズ(一般的)内容
bool1バイトtrueまたはfalse
char1バイト1文字、例 'A'
int4バイト整数
double8バイト浮動小数点数
void値なし(関数用)

個数にはint、小数にはdoubleを使います。異なる範囲が必要ならlongshortunsignedを使います。

初期化の方法#

C++には変数の初期化方法がいくつかあります:

int a = 5;       // コピー初期化
int b(5);        // 直接初期化
int c{5};        // 波括弧初期化 (C++11+)
int d{};         // 値初期化で0
cpp

波括弧初期化{}を推奨します。これはデータを失う縮小変換をコンパイル時に拒否します。

オーバーフローと縮小変換#

short s = 40000;  // オーバーフローの恐れ: 40000 > shortの最大値(32767)
int   x = 3.7;    // 縮小: 3.7が静かに3になる
cpp

波括弧を使えば、静かにデータを壊す代わりにコンパイルエラーになります。

名前付き定数#

変更してはいけない値にはconstを使います:

const double PI = 3.14159;
cpp

const値は推論しやすく、コンパイラも最適化できます。

出力と入力#

#include <iostream>

int main() {
    int age;
    std::cout << "Enter your age: ";
    std::cin >> age;
    std::cout << "You are " << age << " years old.\n";
}
cpp

結論#

型は、変数が何を保持できるか、どの演算が意味を持つかを定義します。シリーズ次回は制御フローです。

参考文献#