演算子 | 操作 | 備考 |
+ | 加算 | |
- | 減算、単項のマイナス記号 | |
* | 乗算 (掛算) | |
/ | 除算 (割算) |
整数(int)型、float型、double型ともに使えるが、 int同士の除算は小数点以下は切捨てられる。(整数の割り算の商)。 |
% | 剰余 (余り) |
ともにintの場合に余りを計算する。 例えば、「10÷3 = 商3 余り1」なので、10%3 は 1 と計算される。 |
++ | インクリメント | 1増やす。x++ や ++x として用いると、x = x+1 と同じ効果。 |
-- | デクリメント | 1減らす。x-- や --x として用いると、x = x-1 と同じ効果。 |
int x=5; x++; // ++x; と書いても同じ std::cout << "xの値は" << x << "です\n" ; // 6と表示される |
int x, s, t; x = 5; s = x++; // s = x; x = x + 1; の順で計算されるので s = 5 となる x = 5; t = ++x; // x = x + 1; t = x; の順で計算されるので t = 6 となる std::cout << "sの値は" << s << "です\n"; std::cout << "tの値は" << t << "です\n"; |
優先順位 | 演算子 | 結合性 |
1 | ++(後置)、--(後置) | 左 |
2 | ++(前置)、--(前置) | 左 |
3 | *、/、% | 左 |
4 | +、- | 左 |
int x=4; int y=10; int a; a = x+y/2; // 平均値を求めるための駄目な例 std::cout << "aの値は" << a << "です\n"; |
int x=4; int y=10; int a; a = (x+y)/2; // 平均値を求めるための正しい例 std::cout << "aの値は" << a << "です\n"; |
int x=2; int y=5; int a; a = 10/x*y; // 誤り例 std::cout << "aの値は" << a << "です\n"; |
int x=2; int y=5; int a; a = 10/(x*y); // 正しい例 std::cout << "aの値は" << a << "です\n"; |
int x=2; int y=5; int a; a = 10/x/y; // 正しい例 std::cout << "aの値は" << a << "です\n"; |
int型の数 |
・1, 2, 3 … などのように、小数点以下のない数
・int x; などのように、int型で宣言された変数に格納されている数 |
double型の数 |
・1.0, 2.0, 3.0, 3.14 … などのように、小数点以下を含む数
・double x; などのように、double型で宣言された変数に格納されている数 |
計算式 | 計算結果についての補足 |
3 * 5 | (int型) * (int型) なので、結果もint型の 15 |
3.0 * 5.0 | (double型) * (double型) なので、結果もdouble型の 15.0 |
計算式 | 計算結果についての補足 |
3 * 5.0 |
(int型) * (double型) だが、int型の3がdouble型の3.0に型変換され、 3.0 * 5.0 が計算される。結果はdouble型の 15.0 |
3.0 * 5 |
(double型) * (int型) だが、int型の5がdouble型の5.0に型変換され、 3.0 * 5.0 が計算される。結果はdouble型の 15.0 |
計算式 | 計算結果についての補足 |
3 / 5 | (int型) / (int型) なので、計算結果は割り算の商であるint型の 0 |
3.0 / 5.0 | (double型) / (double型) なので、小数点以下を含む割り算が行われる。結果はdouble型の 0.6 |
3 / 5.0 |
(int型) / (double型) だが、int型の3がdouble型の3.0に型変換され、 3.0 / 5.0 が計算される。結果はdouble型の 0.6 |
3.0 / 5 |
(double型) / (int型) だが、int型の5がdouble型の5.0に型変換され、 3.0 / 5.0 が計算される。結果はdouble型の 0.6 |
double x = 3; |
int x = 3.14; // 何が起こる? |
int x = 3.14; // 3.14 を整数に型変換された 3 が x に代入される std::cout << "x は" << x << "\n"; // x は3 // 他の例も提示 x = -3.14; // x = -3 に丸められる std::cout << "x は" << x << "\n"; // x は-3 double y = 10.2; x = y; // x = 10 に丸められる std::cout << "x は" << x << "\n"; // x は10 |
warning C4244: '=' : 'double' から 'int' への変換です。データが失われる可能性があります。 |
int x = (int)3.14; // 3.14 を整数に型変換された 3 が x に代入される std::cout << "x は" << x << "\n"; // x は3 // 他の例も提示 x = (int)-3.14; // x = -3 に丸められる std::cout << "x は" << x << "\n"; // x は-3 |
x = (何らかの計算); |
double x; x = 1 / 5; std::cout << "xは" << x << "である\n"; |
int s, t; double x; s = 1; t = 5; x = s / t; std::cout << "xは" << x << "である\n"; |
int x; x = 1.0 / 5.0; std::cout << "xは" << x << "である\n"; |