演算子と式
演算子は値を組み合わせて式を作ります。C と C++ はほぼすべての演算子が共通で、初心者が驚く整数の割り算の規則も同じです。
演算子と式とは?
演算子は値を組み合わせて式を作ります。C と C++ はほぼすべての演算子が共通で、初心者が驚く整数の割り算の規則も同じです。
C と C++ で算術、代入、比較、論理の各演算子を使います。
重要なポイント
- compiler warningを有効にしてすべて修正します。
- 各値の型とlifetimeを把握します。
- 入力と配列の境界を検証します。
CとC++のコード例
C
main.c
#include <stdio.h>
int main(void) {
int a = 17, b = 5;
printf("a + b = %d\n", a + b);
printf("a - b = %d\n", a - b);
printf("a * b = %d\n", a * b);
printf("a / b = %d\n", a / b); /* integer division drops the fraction */
printf("a %% b = %d\n", a % b); /* remainder */
printf("a / 5.0 = %.1f\n", a / 5.0); /* one double operand gives a double */
int total = 10;
total += 5;
total *= 2;
printf("total = %d\n", total);
int count = 0;
count++;
printf("count = %d\n", count);
/* Comparisons and logical operators give 1 (true) or 0 (false). */
printf("a > b: %d, a == 17: %d\n", a > b, a == 17);
printf("a > 10 && b > 10: %d\n", a > 10 && b > 10);
printf("a > 10 || b > 10: %d\n", a > 10 || b > 10);
return 0;
}
a + b = 22
a - b = 12
a * b = 85
a / b = 3
a % b = 2
a / 5.0 = 3.4
total = 30
count = 1
a > b: 1, a == 17: 1
a > 10 && b > 10: 0
a > 10 || b > 10: 1
C++
main.cpp
#include <iostream>
int main() {
int a = 17, b = 5;
std::cout << "a + b = " << a + b << '\n';
std::cout << "a - b = " << a - b << '\n';
std::cout << "a * b = " << a * b << '\n';
std::cout << "a / b = " << a / b << '\n'; // integer division drops the fraction
std::cout << "a % b = " << a % b << '\n'; // remainder
std::cout << "a / 5.0 = " << a / 5.0 << '\n'; // one double operand gives a double
int total = 10;
total += 5;
total *= 2;
std::cout << "total = " << total << '\n';
int count = 0;
count++;
std::cout << "count = " << count << '\n';
// bool values print as true/false with std::boolalpha.
std::cout << std::boolalpha;
std::cout << "a > b: " << (a > b) << ", a == 17: " << (a == 17) << '\n';
std::cout << "a > 10 && b > 10: " << (a > 10 && b > 10) << '\n';
std::cout << "a > 10 || b > 10: " << (a > 10 || b > 10) << '\n';
}
a + b = 22
a - b = 12
a * b = 85
a / b = 3
a % b = 2
a / 5.0 = 3.4
total = 30
count = 1
a > b: true, a == 17: true
a > 10 && b > 10: false
a > 10 || b > 10: true
CとC++の比較
int どうしの割り算では小数部分が切り捨てられるので、17 / 5 は 3 です。残したいときは片方を double にします。比較や && / || の結果は C では 1 か 0、C++ では true か false で、std::boolalpha を使うと単語で表示されます。
C
Cは小さな手続き型APIと表現の詳細を明示します。
C++
C++は低レベルモデルを保ちつつ安全な型を追加します。
練習課題
両方を実行して変更し、言語ごとの保証を確認します。
- 不正入力と境界値を追加します。
- -Wall -Wextra -Wpedanticでコンパイルします。
- 宣言と実装を分割します。
チャレンジで練習する
このレッスンの内容を使って実際の問題を解きましょう。各チャレンジはブラウザで動き、すぐにテストされ、AI のレビューも受けられます。
すべてのチャレンジ