Владимир Волков - Программирование для карманных компьютеров
- Название:Программирование для карманных компьютеров
- Автор:
- Жанр:
- Издательство:неизвестно
- Год:неизвестен
- ISBN:нет данных
- Рейтинг:
- Избранное:Добавить в избранное
-
Отзывы:
-
Ваша оценка:
Владимир Волков - Программирование для карманных компьютеров краткое содержание
Эта книга предназначена для того, чтобы читатель смог быстро научиться создавать мощные и эффективные приложения для наладонных компьютеров Pocket PC. Рынок программ для карманных компьютеров сейчас бурно развивается, и именно в этой отрасли программист-одиночка может успешно соперничать с большими корпорациями, которые создают программное обеспечение. Прочитав эту книгу, читатель сможет уверенно и быстро разрабатывать достаточно сложные приложения для Pocket PC. Огромное количество разнообразных примеров позволит быстро совершенствоваться и развиваться, обогащая свой опыт работы.
Книга предназначена для начинающих программистов.
Программирование для карманных компьютеров - читать онлайн бесплатно ознакомительный отрывок
Интервал:
Закладка:
? ^ – побитовое исключающее ИЛИ. Оператор сравнивает два бита и возвращает 1 только тогда, когда один из битов равен 0, а другой – 1, иначе результат будет равен 0.
? ~ – побитовая инверсия, при которой значение каждого бита меняется на противоположное.
«– побитовый сдвиг вправо. В этом случае последний бит теряется, для беззнакового значения слева вдвигается 0, для знакового – расширяется знак.
? «– побитовый сдвиг влево. В этом случае левый бит теряется, а справа вдвигается ноль.
Тернарный условный оператор Оператор? имеет три операнда. Пример его применения показан ниже.Е1?Е2:ЕЗ
Первым выполняется операнд Е1. Если результат его выполнения равен true, то выполняется операция Е2, а ЕЗ игнорируется. Если результат выполнения Е1 равен false, то выполняется ЕЗ, а Е2 игнорируется. Например, в коротком выражении а = (х>у)?х: у переменная а всегда будет получать большее значение. Операторы сравнения и равенства
Операторы сравнения и равенства приведены в табл. 4.2.
Выполнение этих операторов между двумя операндами возвращает логический результат true, если условие выполняется, или значение false, если оно не выполняется. Операторы == и!= могут быть использованы для сравнения указателей, в то время как остальные операторы для этого использовать нельзя.
Таблица 4.2. Операторы сравнения и равенства Логические операторыЛогические операторы языка C++ приведены в табл. 4.3.
Таблица 4.3. Логические операторы Операторы указателя, разыменования и получения адресаОператор * предназначен для объявления указателя. Указатель содержит в себе адрес блока памяти, на который он указывает. Этот же оператор разыменовывает указатель, то есть позволяет получить доступ к содержимому объекта, на который создан указатель.
Оператор & (адрес) предназначен для получения адреса, по которому содержится значение конкретной переменной. Когда мы обращаемся к переменной по имени, мы всегда получаем доступ к ее значению, но не к области памяти, в которой это значение хранится. Иногда надо знать, в какой конкретно области памяти хранится тот или иной объект. В этом случае следует использовать оператор разыменования.
Другие операторы? () – скобки. Они позволяют группировать выражения, обеспечивая им высший приоритет исполнения, выделять выражения проверки условия в операторах ветвления или цикла. Также скобки показывают, что определенное имя является функцией и заключают в себе параметры функций. Иногда скобки обозначают операцию явного приведения типа.
? {} – фигурные скобки. Они предназначены для обозначения начала и конца составного выражения, объединяющего несколько простых выражений.
? [] – квадратные скобки служат для объявления массивов.
? sizeof – возвращает число типа int, показывающее объем памяти в байтах, занимаемый операндом. Операнд может быть любым выражением, именем типа или объекта.
?. – точка, предназначена для выбора члена структуры или объединения в выражении типа s.m, где s – объект класса структуры или объединения, а m – член структуры или объединения.
? – > стрелка, предназначена для выбора члена структуры или объединения в выражении типа s->m, где s – указатель на объект класса структуры или объединения, а m – член структуры или объединения.
Специфичные операторы C++?:: доступ к объекту-владельцу данного объекта, классу-владельцу данного члена или разрешение области видимости. Доступ к объекту-владельцу данного объекта для динамических объектов или к классу-владельцу для статических объектов будет рассматриваться позже.
?.* – разыменование указателя на член класса.
? – >* – разыменование указателя на указатель члена класса.
? const_cast – добавляет или удаляет из имени указателя модификатор const, когда указатель, имеющий такой модификатор, надо передать в качестве аргумента функции.
? dynamic_cast – во время выполнения программы проверяет, может ли быть указатель приведен к определенному типу или выполняет такое приведение.
? reinterpret_cast – преобразует типизированный указатель в указатель на пустой тип и обратно.
? static_cast – преобразует любой тип, известный на момент компиляции в любой другой тип, также полностью известный на момент компиляции. В том случае, если преобразование может быть выполнено другими средствами языка (например, приведение типа intк типу double), результат применения static_cast будет тем же самым.
? typeid – получает идентификатор времени исполнения для любого выражения-операнда.
? new – осуществляет динамический захват памяти во время исполнения.
? delete – динамически освобождает память, захваченную командой new.
? this – оператор указания на объект, для которого была вызвана данная функция.
? ~ – деструктор класса.
Инструкции
В группу инструкций в С++ выделено все, что влияет на ход выполнения программы и порядок выполнения выражений. В том числе инструкцией считается последовательность выражений, оканчивающаяся точкой с запятой. Таким образом, в число инструкций попадают выражения присваивания и вызовы функций. Особым случаем инструкции является пустая инструкция, которая ничего, кроме точки с запятой, не содержит. Функционально такая инструкция особой пользы не несет, но может быть полезна при отладке или, к примеру, в организации бесконечного цикла.
if…else Эта инструкция позволяет выполнять некоторые выражения только в случае, когда выполняется некоторое условие. Имеет две формы: сокращенную и полную. Синтаксис сокращенной формы приведен ниже.if () ;
Полная форма выглядит несколько иначе.
if () ; else ;
Если (if) условие в скобках () в результате вычисления дает результат типа bool со значением true, то выполняется выражение , иначе будет выполнено выражение . Пример использования этой конструкции приведен в листинге 4.10. Листинг 4.10
void fother () {
char mstr[20];
mstr[0]= \0;
int a = 5;
if (a>5) //Если a>5
{
strcat(mstr, «a>5»); //содержимым строки будет «a>5»
}
else //иначе
{
if (a =5) //Если а=5
{
strcat(mstr, «a=5»); //содержимым строки будет «a=5»
}
else //иначе
{
strcat(mstr, «a<5»); //содержимым строки будет «a<5»
};
};
}Приведенный пример демонстрирует применение инструкций if…else. В листинге показано, что инструкции могут быть вложенными. Следует обратить внимание, что если в качестве выражений фигурируют блоки, то точка с запятой ставится только в конце инструкции. switch (переключатель)
Эта инструкция предназначена для того, чтобы переключить ход выполнения программы на одну из ветвей в соответствии со значением переменной на входе.
Ее синтаксис приведен ниже:switch () {
case : ; [break;]
default: ;
}В этом определении показано, как переменная передается инструкции switch. Если значение переменной соответствует одному из значений константы case, то выполняется соответствующее выражение, которое может быть завершено инструкцией. Если не было найдено значения переменной, соответствующее одной из констант case, то выполняется ветвь default. Каждую из ветвей желательно завершать инструкцией break, иначе возможно выполнение сразу нескольких ветвей. Ветвь default может отсутствовать в конструкции switch. Работа оператора switch проиллюстрирована в блоке 11 рассматриваемого примера. При помощи этого оператора происходит выполнение той или иной функции в зависимости от того, какая клавиша была нажата на клавиатуре. while Инструкция while предназначена для организации цикла, в котором тело цикла может ни разу не быть выполнено. Это зависит от значения переменной продолжения цикла. Синтаксис этой инструкции приведен ниже.
Читать дальшеИнтервал:
Закладка: