Лекции. Основные понятия и определения
Скачать 1.94 Mb.
|
a; //=54 = 668=001101102 - обращение двоичного представления, |
++ - увеличение,
-- - уменьшение,
(<имя-типа>) - приведение типа,
sizeof(a) - объем операнда в байтах, где a - выражение|имя типа.
Рассмотрим правила и примеры применения некоторых операторов данной группы.
Операторы * и & применяются при работе с объектами типа указатель (pointer). * имеет операндом выражение типа указатель, то есть определяющее некоторый адрес в памяти, результатом будет значение, лежащее по этому адресу. Для оператора & операндом является любой объект программы (скаляр, массив или структура), которому выделена память. Результатом будет начальный адрес отведенной объекту памяти. Для переменных типа указатель литералы не определены, т.е. указателю нельзя задать непосредственно адрес памяти.
Пример.
short x, y, *px;
............
x=15;
px=&x;
y=*px; // Это эквивалентно y=x
Для указателей применимы операторы сложения и вычитания.
Пример. y=*(px+a);
y будет равно значению, которое находится в памяти, смещенной относительно адреса px на a элементов типа short, т. е. на 2*a байтов. Такие манипуляции имеют смысл только для массивов, элементы которых по определению занимают непрерывную область памяти и располагаются с некоторого начального адреса.
Одноместный оператор + применяется редко, чтобы избежать перестановки коммутативных операндов, когда порядок вычислений существенен. Одноместный оператор - используется для изменения знака операнда и имеет особенности только для операндов типа unsigned, которые не могут принимать отрицательных значений.
Пример.
unsigned short a, b;
a=45846;
b=-a; // b=65536-45846=19690 Такую операцию называют сложением по
// модулю 216
Оператор