変数と基本データ型
第2課では、自分のマシン上でコンパイラを動作させることに成功しました。さあ、いよいよ実際のコードを書き始めましょう。その前にまず知っておくべきことは、データの保存方法です。それこそが、変数やデータ型の役割なのです。
1. 変数とは何か?
変数とは、メモリ上に存在する名前付きの「箱」のようなもので、そこにデータを格納することができます。
(1) 1.1 実生活での例え
コンピュータのメモリを、巨大なマンションだと考えてみてください。各部屋にはアドレス(メモリアドレス)があり、入居者(データ)を収容することができます。変数を作成するとは、こうした部屋の一つを借りて、それに名前をつけるようなものです。
(2) 1.2 なぜ変数が必要なのか?
変数がなければ、どのプログラムも実行するたびに同じ結果になってしまいます。変数を使えば、次のようなことが可能になります:
- ユーザー入力を保存する
- 値の変化を追跡する
- 再利用可能なロジックを構築する
2. C++の基本データ型
C++には5つの基本データ型があります:
| タイプ | 格納される内容 | 値の例 | メモリ |
|---|---|---|---|
int |
整数 | 25, -100, 0 |
4バイト |
double |
10進数 | 3.14, -0.5, 99.9 |
8バイト |
char |
1文字 | 'A', '9', '$' |
1バイト |
bool |
真または偽 | true, false |
1バイト |
string |
テキスト(複数文字) | "Hello", "C++" |
変数 |
(1) 2.1 変数の宣言
構文:type variableName;
int age; // Declares an integer variable named 'age'
double price; // Declares a double variable named 'price'
char grade; // Declares a char variable named 'grade'
bool isReady; // Declares a boolean variable named 'isReady'
(2) 2.2 宣言と初期化
宣言と値の代入を同時に行うことができます:
int age = 25;
double price = 19.99;
char grade = 'A';
bool isReady = true;
string name = "Alice";
C++11では、中括弧を用いた一様初期化が導入され、これにより安全性が向上しました:
int age{25};
double price{19.99};
(3) ▶ サンプル:1:円の面積を計算する(難易度 ⭐)
#include iostream
int main() {
double radius = 5.0;
double pi = 3.14159;
double area = pi * radius * radius;
std::cout << "Radius: " << radius << std::endl;
std::cout << "Area: " << area << std::endl;
return 0;
}
3. 変数名の命名規則
(1) 3.1 厳格なルール(コンパイラがこれを強制する)
- 入力できるのは、英字、数字、およびアンダースコアのみです (
_) - 数字で始めることはできない
- C++のキーワードは使用できません(例:
int、return、ifなど) - 大文字と小文字を区別する:
ageとAgeは異なる変数です
| 有効 ✅ | 無効 ❌ |
|---|---|
myVar |
1stPlace(数字で始まる) |
_count |
my-var(ハイフンは使用不可) |
studentName |
int (予約済みキーワード) |
number99 |
my var(スペースは使用不可) |
(2) 3.2 ソフトルール(強く推奨)
- camelCase:
studentName,totalScore(C++で最も一般的) - 意味のある名前:
ageはaより良く、totalPriceはtpより良い - 大文字の定数:
const double PI = 3.14159;
i、j)を除き、1文字だけの変数名は避けてください。コードは書くよりも読むことのほうがはるかに多いものです。読みやすいコードにしましょう。
4. 定数
定数とは、初期化後にその値を変更できない変数のことです。
const double PI = 3.14159;
const int DAYS_IN_WEEK = 7;
const を使用しましょう。これにより、コードの安全性が向上し、他の開発者にも意図が伝わりやすくなります。
5. cin と cout を使った入出力
(1) 5.1 cout による出力
cout(「シーアウト」と発音)は、画面にデータを表示します:
#include iostream
int main() {
std::cout << "Hello, C++!" << std::endl;
std::cout << "The answer is: " << 42 << std::endl;
return 0;
}
<<(挿入演算子と呼ばれる)を使用して、coutにデータを送信します。std::endlを使用して改行を追加します。
(2) 5.2 cin による入力
cin(「シーイン」と発音)は、キーボードからデータを読み取ります:
#include iostream
int main() {
int age;
std::cout << "Enter your age: ";
std::cin >> age;
std::cout << "You are " << age << " years old." << std::endl;
return 0;
}
>>(抽出演算子)を使用して、変数にデータを読み込みます。
(3) ▶ サンプル:2:対話型計算機(難易度 ⭐⭐)
#include iostream
int main() {
double num1, num2;
std::cout << "Enter first number: ";
std::cin >> num1;
std::cout << "Enter second number: ";
std::cin >> num2;
double sum = num1 + num2;
double diff = num1 - num2;
double product = num1 * num2;
double quotient = num1 / num2;
std::cout << "Sum: " << sum << std::endl;
std::cout << "Difference: " << diff << std::endl;
std::cout << "Product: " << product << std::endl;
std::cout << "Quotient: " << quotient << std::endl;
return 0;
}
double 型を使用しているため、除算の結果は小数になります。
▶ サンプル 1: variables and data typesデモ (難易度 ⭐)
#include <iostream>
int main() {
// variables and data typesの
std::cout << "variables and data typesをびましょう!" << std::endl;
return 0;
}
❓ よくある質問
intは整数(例:25、-3)を格納し、doubleは小数(例:19.99、3.14)を格納します。経験則:数え上げ・年齢・年数 → int;価格・高さ・平均値 → double。charは単一の文字であるため、一重引用符('A')が使われます。stringは一連の文字であるため、二重引用符("Hello")が使われます。これらはまったく異なる型です。const は型チェックが行われる C++ のキーワードであり、安全で推奨されています。#define は型チェックが行われない C のプリプロセッサマクロであり、現代の C++ では使用を避けるべきです。📖 まとめ
- 変数とは、名前が付けられたメモリ上の格納領域のことです
- C++には5つの基本型があります:
int、double、char、bool、string - 宣言:
type name;| 初期化:type name = value; - 定数は
constを使用 — 値は変更できない cinで入力し、coutで出力する- 意味のある名前を、キャメルケースで付ける
📝 練習問題
- 初心者(難易度 ⭐):
3つの変数、
name(文字列)、age(整数)、score(倍精度浮動小数点数)を宣言するプログラムを作成してください。各変数に値を代入し、それらを出力してください。
My name is Alice, I'm 20 years old, my score is 92.5.
-
中級(難易度 ⭐⭐): ユーザーに円の半径を入力してもらい、円周と面積を計算して表示するプログラムを作成してください。πには定数を使用してください。
-
上級(難易度 ⭐⭐⭐): 温度変換プログラムを作成してください。ユーザーから華氏温度を入力してもらい、
C = (F - 32) × 5 / 9を使用して摂氏に変換し、結果を小数点以下1桁で出力してください。



