Обратить внимание!!!
1. const int i = 7; // целая константа
// i = 9; неверно, значение константы не должно меняться
// const int j; неверно, отсутствует начальное значение константы
const int k(4); // верно, целая константа
2. Примеры различных определений символьной константы:
const char c='1'; const char d=49; //49 – это код ‘1’
const char ed=‘\x31’; // 31 – это код ‘1’ в 16-ичной с/с.
3. Примеры различных определений вещественной константы:
const float f = 1.5f;
const long double d = -3.7L;
const double expf = 5.55e-12;
4. Чтобы указать, что число в выражении имеет некоторый требуемый тип, необходимо после числа указать суффикc:
123 //тип signed int
11234L или 11234l //тип signed long int
123U или 123u, //тип unsigned int
2.78F или 2.78f //тип float
2.78 //тип double
2.78L или 2.78l //тип long double
5. Две следующие строки не эквивалентны:
const int k = 7; // переменная занимает некоторую область памяти
#define k 7 //директива препроцессора
Обычно отличия несущественны, если не считать нескольких лишних тактов, затраченных на каждое обращение к константной переменной. Однако если переменная является глобальной и принадлежит нетривиальному классу со своим конструктором, ситуация резко меняется.
1 Из соображений удобства кодирования и из технических соображений пользуются равномерными кодами, т.е. двоичными группами равной длины. При использовании 8 двоичных знаков (1 байт) получим 256 комбинаций двоичных символов. Одной из распространенных систем «байтового» кодирования является ASCII (American Stаndard Cod Information Interchange). Но эта система является международной (общепринятой) только в первой половине кодов (от 0 до 127), вторая половина кодов (от 128 до 255) является национальной и различна для разных стран.
2 Основная цель препроцессора – закончить формирование исходного кода программы на С++, поэтому типичное для него действие – добавление или изменение текста в исходном коде перед компиляцией (например, директива препроцессора #include <iostream.h> предписывает включение в текст программы заголовочного (текстового) файла iostream с расширением .h). Выполняя препроцессорные директивы, препроцессор изменяет исходный кол программы: он преобразовывается в расширенный код, который и подается на вход компилятора