3.2.3 Увеличение и уменьшение*

3.2.3 Увеличение и уменьшение*

– * Следовало бы переводить как «инкремент» и «декремент», однако мы следовали терминологии, принятой в переводной литратуре по C, поскольку эти операции унаследованы от C. (прим.

перев.)

Операция ++ используется для явного выражения приращения вместо его неявного выражения с помощью комбинации сложения и присваивания. По определению ++lvalue означает lvalue+=1, что в свою очередь означает lvalue=lvalue+1 при условии, что lvalue не вызывает никаких побочных эффектов. Выражение, обозначающее (денотирующее) объект, который должен быть увличен, вычисляется один раз (только). Аналогично, уменьшение выражается операцией –. Операции ++ и – могут применяться и как префиксные, и как постфиксные. Значением ++x является нвое (то есть увеличенное) значение x. Например, y=++x эквивлентно y=(x+=1). Значение x++, напротив, есть старое значение x. Например, y=x++ эквивалентно y=(t=x,x+=1,t), где t – перменная того же типа, что и x.

Операции приращения особенно полезны для увеличения и уменьшения переменных в циклах. Например, оканчивающуюся нлем строку можно копировать так:

inline void cpy(char* p, const char* q) (* while (*p++ = *q++) ; *)

Напомню, что увеличение и уменьшение арифметических указателей, так же как сложение и вычитание указателей, осуществляется в терминах элементов вектора, на которые указывает указатель p++ приводит к тому, что p указывает на следующий элемент. Для указателя p типа T* по определению выполняется следующее:

long(p+1) == long(p)+sizeof(T);

Поделитесь на страничке

Следующая глава >

Похожие главы из других книг:

Уменьшение количества выводимых сообщений

Из книги автора

Уменьшение количества выводимых сообщений Для того чтобы уменьшить шум, связанный с сообщениями, которые выдаются во время сборки, но в то же время видеть предупреждения и сообщения об ошибках, можно использовать такую хитрость, как перенаправление стандартного вывода


Глава 2. Уменьшение размера

Из книги автора

Глава 2. Уменьшение размера 2.1. Насколько ресурсоемко архивирование HTML Архивирование (gzip-, deflate-сжатие) уже давно является наиболее известной техникой оптимизации. Однако применяют ее по-прежнему так же редко, как и 10 лет назад. Я постараюсь максимально подробно осветить


Глава 4. Уменьшение числа запросов

Из книги автора

Глава 4. Уменьшение числа запросов 4.1. Объединение HTML- и CSS-файлов Число запросов является наиболее узким местом при загрузке страницы. По последним исследованиям, порядка 40% времени загрузки уходит только на установление новых соединений с сервером. В этом свете любые


Уменьшение времени, необходимого для резервного копирования и восстановления

Из книги автора

Уменьшение времени, необходимого для резервного копирования и восстановления В InterBase отсутствует возможность инкрементального резервного копирования, при этом сам процесс backup/restore из-за архитектурных особенностей проходит медленнее по сравнению с серверами СУБД, где


Уменьшение размера, занимаемого индексами

Из книги автора

Уменьшение размера, занимаемого индексами Индексы, построенные по текстовым полям с национальным порядком сортировки, занимают в среднем на одну треть меньше места на диске по сравнению с


6.5. Увеличение фрагментов диаграмм

Из книги автора

6.5. Увеличение фрагментов диаграмм С одним из методов создания в PROBE увеличенных фрагментов диаграмм вы уже познакомились: с помощью окон X Axis Settings и Y Axis Settings вы можете увеличить любой интересующий вас фрагмент до размеров всей рабочей поверхности экрана. Помимо этого, в


Low Contrast (Уменьшение контрастности)

Из книги автора

Low Contrast (Уменьшение контрастности) Размывает яркие участки снимка в затененную сторону с одновременным уменьшением контрастности изображения и сохранением общей яркости снимка. На рисунке 4.24 слева показана фотография низкого качества, которая была сделана при помощи


Увеличение объектов

Из книги автора

Увеличение объектов Команда LENGTHEN, которая осуществляет увеличение объектов, вызывается из падающего меню Modify ? Lengthen.Действие команды LENGTHEN не распространяется на замкнутые объекты.Запросы команды LENGTHEN: Select an object or [DElta/Percent/Total/DYnamic]: – выбрать объект или один из ключей Current


Увеличение объектов

Из книги автора

Увеличение объектов Команда LENGTHEN, которая осуществляет увеличение объектов, вызывается из падающего меню Modify ? Lengthen.Действие команды LENGTHEN не распространяется на замкнутые объекты.Запросы команды lengthen: Select an object or [DElta/Percent/Total/DYnamic]: – выбрать объект или один из ключейCurrent


Увеличение объектов

Из книги автора

Увеличение объектов Команда LENGTHEN , которая осуществляет увеличение объектов, вызывается из падающего меню Modify ? Lengthen.Действие команды LENGTHEN не распространяется на замкнутые объекты.Запросы команды


Глава 2 Уменьшение размера ЕХЕ-файла. Использование Windows API

Из книги автора

Глава 2 Уменьшение размера ЕХЕ-файла. Использование Windows API • Источник лишних килобайт• Создание окна вручную• Окно с элементами управления• Стандартные диалоговые окна Windows• Установка шрифта элементов управленияНе секрет, что размер скомпилированного ЕХЕ-файла


Увеличение кнопок

Из книги автора

Увеличение кнопок Исходный файл: Expandingbuttons.fla Многие сайты используют Flash для навигации от страницы к странице. Даже простой Flash-ролик с одной кнопкой может значительно оживить статическую Web-страницу. При помощи ActionScript вы сможете сделать эти кнопки анимированными.Задача


7.2.1 Увеличение и Уменьшение

Из книги автора

7.2.1 Увеличение и Уменьшение Операнд префиксного ++ получает приращение. Операнд дожен быть адресным . Значением является новое значение операда, но оно не адресное. Выражение ++x эквивалентно x+=1. По поводу данных о преобразованиях см. обсуждение операций слжения (#7.4) и


6.5. Увеличение производительности NTFS

Из книги автора

6.5. Увеличение производительности NTFS Можно долго спорить о том, какая файловая система лучше — FAT32 или NTFS. С моей точки зрения — однозначно NTFS. Она обеспечивает должный уровень безопасности и предоставляет возможности, которые не доступны в FAT32, кроме того, она