KnigaRead.com/
KnigaRead.com » Компьютеры и Интернет » Программирование » Владимир Волков - Программирование для карманных компьютеров

Владимир Волков - Программирование для карманных компьютеров

На нашем сайте KnigaRead.com Вы можете абсолютно бесплатно читать книгу онлайн Владимир Волков, "Программирование для карманных компьютеров" бесплатно, без регистрации.
Перейти на страницу:

Кроме обязательного объявления всех именованных объектов, их еще необходимо инициализировать, то есть присвоить им начальное значение. Некоторые объекты инициализируются при создании, некоторые – нет. Не нужно инициализировать переменные и объекты, объявленные внутри функций. В результате этого неинициализированные объекты могут иметь неопределенное значение. Это неопределенное значение при его случайном использовании может дать непредсказуемый результат.

Можно объявлять несколько имен в одном операторе объявления. Следующая строка кода иллюстрирует эту возможность:

int С…, Сѓ, z;

В С++ при объявлении обязательно должен указываться тип. Основные типы, применяемые в C++, перечислены в следующем списке.

? Логический тип (bool).

? Символьный тип (char, wcharjt).

? Целые типы (short, int, long).

? Типы с плавающей точкой (float, double).

? Перечислимые типы (enum).

? Тип void используется для указания на отсутствие информации.

? Указатели.

? Массивы.

? Ссылки.

? Структуры данных и классы.

В файле MyExp.cpp роазмещены несколько объявлений. Например, в блоке 3 присутствует следующий фрагмент кода:

wchar_t *szStr; // объявлена переменная szStr,

//которая является указателем (*) на тип wchar_t

wchar_t mstr[256]; // объявлен массив mstr элементов типа wchar_t

//с количеством элементов 256

В блоке 4 помимо объявлений используется и инициализация переменных:

MSG msg; //объявлена переменная msg типа MSG

int rc = 0; // объявлена переменная rc с типом int,

// переменная была инициализирована значением 0

Базовые (фундаментальные) типы

Логический тип

Переменные этого типа могут принимать значение истина(true) или ложь(false). Эти переменные применяются для анализа выполнения некоторого условия. По результатам проверки условия то или иное действие будет или не будет выполнено. Логическим значениям false и true соответствуют целочисленные значения 0 и 1. Логические значения могут принимать участие в арифметических операциях, но при присвоении им целочисленных значений, они будут усекаться до нуля или единицы. Это иллюстрируется в рассматриваемом примере.

Упражнение 4.1 (продолжение)

13. В файле MyExp.h следует добавить в конец блока 4 объявление функции

void f2();.

14. В файле MyExp.сpp следует добавить в конец блока 3 объявления символьных массивов:

char mm[256]; charnn[32];

15. В конец файла MyExp.сpp нужно добавить блок 14, с кодом, который показан в листинге 4.5. Листинг 4.5

// Блок 14

void f2(){

bool i = false;

int j = 10;

mm[0] = ;

sprintf(nn, В«%dВ», j);

strcat(mm, " j = ");

strcat(mm, nn);

strcat(mm, В«nВ»);

i=7;

sprintf(nn, В«%dВ», i);

strcat(mm, " i = ");

strcat(mm, nn);

strcat(mm, В«nВ»);

j = j+i;

sprintf(nn, В«%dВ», j);

strcat(mm, " j+i = ");

strcat(mm, nn);

strcat(mm, В«nВ»);

mbstowcs(mstr, mm, 256);

szStr = mstr;

}

16.В Рзменить вторую РїРѕ счету ветвь case РІ блоке 11, как показано РІ листинге 4.6. Листинг 4.6

case 50: {

f2();

}

break;

РџР РМЕЧАНРР•. Каждый новый фрагмент РєРѕРґР° будет добавляться РІ новые ветви case оператора выбора switch.

Теперь можно запустить программу. Нажатие клавиши 2 на клавиатуре приведет к появлению в окне последовательности изменения значений переменных. Как и ожидалось, присвоение целочисленной переменной j значения 10 прошло без проблем. А вот присвоение значения 7 переменной i типа bool усекло значение 7 до единицы, и при сложении i и j результат получился равным 11, а не 17. Символьный тип

В переменной типа char может храниться один из символов, входящих в набор символов используемой реализации ОС. Для хранения символа отводится 8 бит, так что всего можно использовать 256 значений этого типа. Можно с достаточной уверенностью предположить, что в набор символов конкретной реализации входят цифры, 26 букв английского алфавита и некоторые основные знаки пунктуации. Все остальные предположения о составе символьного набора не могут считаться достоверными.

Каждая символьная константа имеет числовое значение, отображающее ее порядковый номер в символьном наборе. Тип char может быть как знаковым (signed char), так и беззнаковым (unsigned char). По умолчанию char трактуется как знаковый тип, поэтому если нужно получить беззнаковое преобразование, необходимо явно объявлять переменную типа unsigned char.

Для хранения символов больших наборов, таких как Unicode, используется тип wchar_t.

Символьные типы являются интегральными. Как и к логическим типам, к ним можно применять арифметические и логические операции. Кроме того, имеется ряд символьных констант, называющихся ESC-последовательностями, играющих особые роли при работе с символьными строками. Основные ESC-последовательности приведены в следующем списке.

'n' – новая строка,

't' – горизонтальная табуляция,

'v' – вертикальная табуляция,

'r' – перевод каретки,

'f' – перевод страницы,

'a' – звуковой сигнал,

' – одиночная кавычка (апостроф),

'" – двойная кавычка,

'\ – обратная косая черта.

Целые типы

К целочисленным типам относятся int, short int и long int. Вместо двух последних можно применять обозначения short и long. Кроме того, целочисленный тип может быть знаковым и беззнаковым – signed и unsigned. Обычный тип int всегда является знаковым. Если нужно получить беззнаковый тип, следует явно объявить переменную как unsigned. Объявление unsigned равнозначно объявлению unsigned int. Конкретное значение размеров переменной зависит от реализации ОС.

Перейти на страницу:
Прокомментировать
Подтвердите что вы не робот:*