'" – двойная кавычка,
'\ – обратная косая черта.
Целые типы
К целочисленным типам относятся int, short int и long int. Вместо двух последних можно применять обозначения short и long. Кроме того, целочисленный тип может быть знаковым и беззнаковым – signed и unsigned. Обычный тип int всегда является знаковым. Если нужно получить беззнаковый тип, следует явно объявить переменную как unsigned. Объявление unsigned равнозначно объявлению unsigned int. Конкретное значение размеров переменной зависит от реализации ОС.
Типы с плавающей точкой
Рти типы представлены тремя размерами – float (одинарная точность), double (двойная точность) Рё long double (расширенная точность). Конкретное значение размеров переменных зависит РѕС‚ реализации РћРЎ.
Размеры
Размер переменных базовых типов РІ РЎ++ зависит РѕС‚ реализации РћРЎ. Размеры объектов выражаются РІ единицах размера char. РСЃС…РѕРґСЏ РёР· предположения, что переменные типа char занимают РѕРґРёРЅ байт, размеры любых РґСЂСѓРіРёС… объектов РІ байтах можно определить РїСЂРё помощи оператора sizeof, как это показано РІ тестовом примере.
Упражнение 4.1 (продолжение)
17. Объявить в файле MyExp.h функцию f3() и дописать в блок 11 еще одну ветвь case, код которой приведен в листинге 4.7.
Листинг 4.7
case 51: {
f3();
}
break;
18. Добавить в конец файла MyExp.cpp еще один блок, код которого приведен в листинге 4.8. Листинг 4.8
// Блок 15
void f3(){
mm[0] = ;
sprintf(nn, В«%dВ», (sizeof(char)));
strcat(mm, " Size of type char = ");
strcat(mm, nn);
strcat(mm, В«nВ»);
sprintf(nn, В«%dВ», (sizeof(wchar_t)));
strcat(mm, " Size of type wchar_t = ");
strcat(mm, nn);
strcat(mm, В«nВ»);
sprintf(nn, В«%dВ», (sizeof В«Hello, Word!В»));
strcat(mm, В« Size of string В»Hello, Word!" = ");
strcat(mm, nn);
strcat(mm, В«nВ»);
mbstowcs(mstr, mm, 256);
szStr = mstr;
}
Результат работы этого блока выводится на экран при нажатии клавиши 3.
Литералы
Литералы – это символьные значения переменных и констант, которые записываются в тексте программы. Для типа bool литералами будут выражения true и false, для типа char литералом будет символ, заключенный в одинарные кавычки.
Литералы для целых чисел различаются по системе счисления и могут иметь десятеричную, восьмеричную и шестнадцатеричную форму записи. Десятеричная форма записи выглядит наиболее привычно. Рв качестве литералов используются обычные числа. Восьмеричный литерал обязательно начинается с нуля – 00, 02, 077. Шестнадцатеричный литерал начинается с префикса Ох – 0x0, 0x2, 0x3f.
Для явной записи беззнаковых литералов можно использовать суффикс U – 23U, а суффикс L можно использовать для явной записи литерала типа long – 23L. Рекомендуется для записи числовых значений использовать десятеричные литералы, а восьмеричные и шестнадцатеричные литералы применять для записи цепочек битов.
Для записи значений с плавающей точкой используются следующие формы:
? 1.23
? 23
? 0.23
? 1.
? 1.0
? 1.2e10
? 1.23e-10
В записи литералов с плавающей точкой не должно быть пробелов. По умолчанию, литералы с плавающей точкой имеют значение типа double. Если необходимо определить литерал типа float, это можно сделать при помощи суффикса f – 2.9999f.
Void Рто фундаментальный тип, который РЅРёРєРѕРіРґР° РЅРµ используется самостоятельно. РќРµ бывает объектов типа void. Ртот тип указывает РЅР° то, что РґСЂСѓРіРѕР№ тип, РІ сочетании СЃ которым РѕРЅ используется, РЅРµ имеет значения, имеет неопределенное значение или неизвестное значение. Р’ следующем фрагменте РєРѕРґР° приводятся примеры применения этого фундаментального типа.
void f(); //эта функция не возвращает значение
void* pnt; //это указатель на объект неизвестного типа
void х; //эта запись неверна, объектов типа void не существует
Перечисления При помощи перечислений устанавливается некоторый набор значений, определяемых пользователем. Перечисление объявляется при помощи ключевого слова enum. В качестве элементов перечисления можно определить именованные целые константы:
enum {DEC, JAN, FEB};
В этом случае определены три целые константы. Если константы не инициализируются явно, то по умолчанию им присваиваются значения, начинающиеся с нуля и увеличивающиеся на единицу для каждой следующей константы. Таким образом значение DEC будет равно 0, JAN – 1, а FEB – 2. Перечислению можно присвоить имя, как это показано в следующем фрагменте:
enum year{JAN,FEB,MAR,APR,MAY,JUN,JUL,AUG,SEP,OCT,NOV,DEC};
Константы в перечислении можно инициализировать значениями, отличными от индексных, которые присваиваются по умолчанию:
enum times{SAVE=10,SLEEP=20,STOP=30};
Если инициализируется только часть элементов перечисления, то те элементы перечисления, которые указаны после инициализированных, будут получать возрастающие значения, отсчитываемые от того значения, которое они получили при инициализации. В следующем фрагменте элемент STOP будет инициализирован значением 21.
enum times{SAVE=10,SLEEP=20,STOP};
Области видимости и имена
Объявление РІРІРѕРґРёС‚ РёРјСЏ РІ область видимости. Рто значит, что РёРјСЏ может использоваться только РІ определенной части текста программы, Рё, РіРґРµ именно будет использоваться объявленное РёРјСЏ, зависит РѕС‚ того, РІ каком месте программы РѕРЅРѕ было объявлено.