Операнд должен быть целого типа. Пример:
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 */