03:変数とデータ型

はじめに

この章では、整数、小数、文字、真偽値、文字列といった基本的なデータ型と、変数を使ってプログラムに値を保持する方法を学びます。 また、C++の << 演算子が型ごとに適切に処理を変える仕組みにも触れていきます。


いろいろなデータ型

型名 説明
int 整数 10, -5, 0
double 実数(小数) 3.14, -0.5
char 1文字 'A', 'z'
bool 真偽値(true/false) true, false
string 文字列 "Hello", "C++"

string 型を使うには <string> をインクルードする必要があります。


変数に値を保持して表示する

#include <iostream>
#include <string>
using namespace std;

int main() {
    int score = 90;
    double rate = 0.85;
    char grade = 'A';
    bool isPassed = true;
    string name = "Tanaka";

    cout << "名前: " << name << endl;
    cout << "スコア: " << score << endl;
    cout << "レート: " << rate << endl;
    cout << "評価: " << grade << endl;
    cout << "合格か?: " << isPassed << endl;

    return 0;
}

解説


演算子オーバーロードのしくみ

C++では、演算子 <<>> の振る舞いを、扱う型ごとに切り替える機能があります。 これを "演算子オーバーロード" と呼びます。

これにより、型ごとに特別な処理を意識せずに、同じ書き方で出力できます。


bool型の文字表示(true/false)

#include <iostream>
using namespace std;

int main() {
    bool isClear = true;

    cout << isClear << endl;        // 数値として表示(1)
    cout << boolalpha << isClear << endl;  // 文字として表示(true)

    return 0;
}

解説

さらに詳しく

boolalphaマニピュレータ(Manipulator) と呼ばれる機能の一つです。 マニピュレータとは、cout などの出力の設定を一時的に変更する仕組みです。

cout << boolalpha << true << ", " << false << endl;  // true, false
cout << noboolalpha << true << ", " << false << endl;  // 1, 0

他にも、fixedsetprecision など、表示形式を変えるマニピュレータがあります。


理解度チェック

次のコードの出力を考えてください。

#include <iostream>
#include <string>
using namespace std;

int main() {
    int age = 25;
    string name = "Sato";
    bool isMember = false;

    cout << "名前: " << name << endl;
    cout << "年齢: " << age << endl;
    cout << "会員ですか?: " << isMember << endl;

    return 0;
}
正解・解説を見る
名前: Sato
年齢: 25
会員ですか?: 0

bool型の出力は 0 または 1 になります。boolalpha を使っていないため false は 0 と表示されます。


まとめ