Динамічні змінні, як і статичні можуть містити значення відповідного типу. Над ними можна виконувати такі ж операції, як і над статичними змінними того ж типу.
Різниця між динамічними змінними та статичними:
1. Динамічна змінна не має імені, а статична має.
2. Тому: - до статичної змінної можна звертатися як через її ім’я, так і через деякий вказівник, адресований на цю змінну; - до динамічної змінної можна звертатися лише через деякий вказівник, адресований на неї.
3. Динамічні змінні знаходяться в так званій динамічній пам’яті (в «купі» або в heap). А статична – в статичній.
4. Статична змінна створюється один раз (при описі) і існує до кінці роботи програми, займаючи часто дорогоцінну пам’ять. Динамічну змінну можна створювати і видаляти (звільняти пам’ять) в довільній точці програми.
Щоб створити динамічну змінну (зарезервувати під нею пам’ять в купі) необхідно примінити команду new до деякого вказівника. Щоб знищити динамічну змінну (вивільнити пам’ять) необхідно примінити команду delete до вказівника, що направлений на цю змінну. Сам вказівник після цього необхідно занулити (присвоїти значення 0 (NULL))