Константы. Константы представляют собой данные используемые только для чтения , т.е

Константы представляют собой данные используемые только для чтения, т.е. константы не изменяют своего значения в процессе выполнения программы. В программе они могут быть заданы явно своим значением или обозначены именем.

Константы бывают:

1) типизированные (с указанием типа константы);

2) нетипизированные (без указания типа константы).

Их можно описать двумя способами:

1) при помощи модификатора const - для типизированных;

2) при помощи директивы #define(использование макроса, см.#) – для нетипизированных.

Форма записи:

Const СпецификаторТипа <ИмяПеременной1=Значение1, …,ИмяПеременнойN=ЗначениеN>;

#define Идентификатор_макроса <Последовательность_лексем> (подробнее см.. #)

В качестве значения может использоваться:

1) непосредственно число указанного типа;

2) простое выражение, допустимое для заданного типа данных(допускается использовать в них описанные ранее константы или переменные со стартовым значением (см. #2.2.4.2)).

Примеры:

const int I=6, j=3+2*4, k=I*j+5;

#define h 3;

#define m 3*h+k;

Отметим, что если после слова const отсутствует спецификатор типа, то подразумевается спецификатор типа int. Если ключевое слово const стоит перед объявлением составных типов (массив, структура, смесь, перечисление), то это приводит к тому, что каждый элемент также должен являться немодифицируемым, т.е. значение ему может быть присвоено только один раз.

Примеры:

const float pi= 3.1415926; //константа плавающего типа

const maxint = 32767; //целочисленная константа

const mas[5]={7,9,3,5,2}; //массив констант

char *const str= “Hello, world!”; // указатель константа

char const *str2= «Hello, world!»; // указатель на константу

и

#define nil “”;

#define n 7*2-2; “”;

С учетом этого, следующие операторы являются недопустимыми:

pi= 3.0; /* присвоение значения константе pi */

i= maxint++; /* инкремент константы maxint*/

str = «Hi, there!»; /* установка указателя str на что-то еще*/

Однако, отметим, что вызов функции strcpy(str,»Hi, there!») является допустимым, поскольку он выполняет посимвольное копирование из строкового литерала «Hi, there!» в адрес памяти, указываемый str.

В С++ const также «скрывает» объект const и предотвращает внешнюю компоновку. При необходимости нужно использовать extern const. Указатель на const не может быть присвоен указателю на не const (в противном случае значению const могло было быть выполнено присвоение при помощи указателя на не const.)

Например,

char str3 = str2 / запрещено */

В зависимости от типов данных константы бывают следующих видов:

1) целые;

2) с плавающей точкой;

3) символьные;

4) строковые;

5) перечислимые.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: