Каждая программа на C++ состоит из одной или более функций. Среди них обязательно должна присутствовать главная функция main, которую и вызывает операционная система при запуске программы. Простейший пример:
int main() {
    return 0;
}
Значение, возвращаемое main, используется ОС для определения успешности
завершения программы. Если не ноль, то в программе произошла ошибка.
#include <iostream>   // Заголовочный файл
int main() {
    std::cout << "Hello world!" << std::endl;
}
Чтобы каждый раз не писать префикс std::, можно включить пространство 
имён в глобальную область видимости:
using namespace std; // Всё содержимое пространства std 
                     // становится видимым во всем файле.
using std::cout;     // Либо только элемент cout становится
                     // видимым во всем файле.
int main() {
    cout << "Hello world!";
}
| С++ | Pascal | 
|---|---|
| int | integer | 
| bool | boolean | 
| double, float | real | 
| char | char | 
Замечание: в типе char не поддерживается Unicode по умолчанию.
double d = 3.14;    // старый стиль
double d {3.14};    // новый стиль
double d = {3.14};  // или так
В C++ при попытке присвоить целочисленной переменной значение с плавающей точкой, произойдёт отбрасывание дробной части. При инициализации в новом стиле будет ошибка компиляции.
int i = 3.14;   // i == 3
int i {3.14};   // Ошибка компиляции
Тип char занимает 1 байт, поэтому диапазон его значений [-128,127], 
однако следующий код будет откомпилирован.
char c = 128;   // c == -128
| C++ | Pascal | Примеры | 
|---|---|---|
| = | := | int a = 4; | 
| / | div | 7 / 3— типint;7 / 3.0—double | 
| % | mod | |
| a++ / ++a | a = a + 1 | ... | 
| && | and | i > 0  &&  i != 2 | 
| \ | \ | |
| ! | not | |
| == | = | |
| != | <> | |
| << | shl | (8 << 1  =  16) | 
| >> | shr | |
| & | and | 7 & 3 == 3 | 
| \ | or | |
| ^ | xor | |
| ~ | not | 
Возможна запись a = b = c, означающая b = c; a = c — множественное присваивание (справа налево).
Особое внимание стоит обратить на операцию сравнение на равенство:
if (a = 5)  …  // (1) Неверно! Но легко пропустить
if (5 = a)  …  // (2) Неверно! И компилятор выдаст ошибку
if (a == 5) … // (3) Верно! Но если спутать с (1), то легко не заметить
if (5 == a) … // (4) Верно! И если спутать с (2), то легко увидеть: ошибка компиляции
if (условие) {
    ...
} else {
    ...
}
Допускается сокращённая форма (без else).
bool flag;
if (flag) {
    cout << "true";
} else {
    cout << "false";
}
Более короткая запись:
cout << (flag ? "true" : "false");
switch (i) {
    case 1:
        ...
        break;
    case 2:
    case 3:     
    ...
    default:
}
whilewhile (x > 10) {
    x -= 1;
}
do-whiledo {
   x--;
} while (x > 0);
Похож на repeat/until в Паскале, но используется условие продолжения 
цикла (как в while), а не условие окончания как в repeat/until.
forfor (инициализация; условие_продолжения; действие_на_каждом_шаге) {
    ...
}
for (int i = 0; i < 10; i++) {
    cout << i << " ";
}                               // "0 1 2 3 4 5 6 7 8 9 "
for (;;);  // бесконечный цикл
, (запятая)Возвращает значение своего последнего операнда, например:
int s = 0, i = 6;
cout <<  s = i*i, i;  // Выведет 6