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);

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

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

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

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

Из книги C++ автора Хилл Мюррей

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


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

Из книги Разгони свой сайт автора Мациевский Николай

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


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

Из книги AutoCAD 2009 для студента. Самоучитель автора Соколова Татьяна Юрьевна

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


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

Из книги Photoshop. Лучшие фильтры автора Бондаренко Сергей

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


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

Из книги Визуальное моделирование электронных схем в PSPICE автора Хайнеманн Роберт

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


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

Из книги Первые шаги с Windows 7. Руководство для начинающих автора Колисниченко Денис Н.

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


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

Из книги Delphi. Трюки и эффекты автора Чиртик Александр Анатольевич

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


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

Из книги Инфобизнес на полную мощность [Удвоение продаж] автора Парабеллум Андрей Алексеевич

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


Увеличение цены

Из книги AutoCAD 2009. Учебный курс автора Соколова Татьяна Юрьевна


Увеличение ценности

Из книги AutoCAD 2008 для студента: популярный самоучитель автора Соколова Татьяна Юрьевна


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

Из книги Adobe Flash. Создание аркад, головоломок и других игр с помощью ActionScript автора Розенцвейг Гэри

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


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

Из книги Мир InterBase. Архитектура, администрирование и разработка приложений баз данных в InterBase/FireBird/Yaffil автора Ковязин Алексей Николаевич

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


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

Из книги Разработка ядра Linux автора Лав Роберт

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


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

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

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


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

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

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


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

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

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