Операнд должен быть целого типа. Пример:
char b = 9;
char f;
f = ~b;
Двоичное значение 9 равно 00001001. В результате операции ~
Эти операции используются для работы с переменными типа указатель.
Операция разадресации ('*') позволяет осуществить доступ к переменной при помощи указателя. Операнд операции разадресации обязательно должен быть указателем. Результатом операции является значение переменной, на которую указывает операнд. Типом результата является тип переменной, на которую ссылается указатель.
В отличие от прямого использования переменных использование указа- указателей может приводить к непредсказуемым результатам. Результат не определен, если указатель содержит недопустимый адрес.
Рассмотрим типичные ситуации, когда указатель содержит недопустимый адрес:
— указатель является нулевым;
— указатель определяет адрес такого объекта, который не является активным в момент использования указателя;
— указатель определяет адрес, который не выровнен до типа объекта, на который он указывает;
— указатель определяет адрес, не используемый выполняющейся программой.
Операция
Примеры:
int t, //Объявляется переменная целого типа
f=0, //Объявляется переменная
*adress; //Объявляется указатель на переменные целого типа
adress = &t // указателю
*adress =f; /* переменной, находящейся по адресу, содержащемуся в переменной
С помощью операции sizeof можно определить размер области памяти, которая соответствует идентификатору или типу переменной. Операция sizeof записывается в следующем виде:
"sizeof ("Выражение') '
В качестве выражения может быть использован любой идентификатор, либо имя типа, заключенное в скобки. Отметим, что не может быть использовано имя типа void, а идентификатор не может относиться к полю битов структуры или быть именем функции.
Если в качестве выражения указано имя массива или структуры, то результатом является размер всего массива (т. е. произведение числа элементов на длину типа) или структуры.
К этому классу операций относятся операции умножения (*), деления (/) и получения остатка от деления (%). Операндами операции % должны быть целые числа. Отметим, что типы операндов операций умножения и деления могут отличаться, и для них справедливы правила преобразования типов. Типом результата является тип операндов после преобразования.
int i=5;
float f=0.2;
float g,z;
g=f*i;
Тип переменной i преобразуется к типу float, затем выполняется умножение а результат умножения присваивается переменной g.
int i=49, j=10, n. m;
n = i/j; /* результат 4 */
m = i/(-j); /* результат -4 */