You are on page 1of 2

C++ Константи

Тези така наречени константи са променливи, които след като приемат дадена стойност, тя не
може да бъде променяна. Тоест константата остава с тази стойност до края на изпълнението
на програмата.

Декларация
Константите в C++ се декларират посредством ключовата дума const. Пример:

const double PI = 3.14159265359;


Внимание: Константите трябва да се инициализират едновременно с декларацията им.
Тоест едновременно с декларацията на константата, трябва да определите и стойността
й. Следният код би довел до грешка при компилиране:

const double PI;


PI = 3.14159265359;

Дефинирани константи
Другият тип константи са дефинираните константи. Те се дефинират посредством
ключовата дума define. Пример:

#define PI 3.14159265359
#define SEPARATOR „–„
#define TABULATOR ‘\t’
Тези константи работят на съвсем друг принцип. Те не заемат място в паметта на
компютъра. #define директивата не е C++ израз, тя е всъщност директива към
предпроцесора (програма, която извършва предварителна обработка на информацията
по време на компилацията).

Всъщност единственото нещо, което предпроцесора прави, когато срещне #define директива,
е буквално да замести всяка поява на нейния идентификатор (в примера PI, SEPARATOR и
TABULATOR) със стойността, с която те са дефинирани (съответно 3.14159265359, „–“ и ‘\t’).

В тази програма използваме дефинираните по-горе константи:

//Лице и периметър на кръг с радиус 8


#include <iostream>
using namespace std;
#define PI 3.14159265359
#define SEPARATOR „–„
#define TABULATOR ‘\t’
int main ()
{
double radius = 8;
double area, perimeter;
perimeter = 2 * PI * radius;
area = PI * radius * radius;
cout << TABULATOR;
cout << perimeter;
cout << SEPARATOR;
cout << area;
return 0;
}
След като предпроцесорът си свърши работата, нашата програма изглежда по следния начин
непосредствено преди компилация:

//…
// Тук е включена iostream библиотеката
using namespace std;
int main ()
{
double radius = 8;
double area, perimeter;
perimeter = 2 * 3.14159265359 * radius;
area = 3.14159265359 * radius * radius;
cout << ‘\t’;
cout << perimeter;
cout << „–„;
cout << area;
return 0;
}

You might also like