Архив на категорию:
'1.3. Выражения и присваивания'
Комбинация знаков операций и операндов, результатом которой является определенное значение, называется выражением. Знаки операций определяют действия, которые должны быть выполнены над операндами. Каждый операнд в выражении может быть выражением. Значение выражения зависит от расположения знаков операций и круглых скобок в выражении, а также от приоритета выполнения операций. В языке СИ присваивание также является выражением, и [...]
Ноябрь 29th, 2009 | Категория:
1.3. Выражения и присваивания | нет комментариев
При выполнении операций производится автоматическое преобразование типов, чтобы привести операнды выражений к общему типу или чтобы расширить короткие величины до размера целых величин, используемых в машинных командах. Выполнение преобразования зависит от специфики операций и от типа операнда или операндов. Рассмотрим общие арифметические преобразования. 1. Операнды типа float преобразуются к типу double. 2. Если один операнд [...]
Ноябрь 29th, 2009 | Категория:
1.3. Выражения и присваивания | нет комментариев
Операция арифметического отрицания (-) вырабатывает отрицание своего операнда. Операнд должен быть целой или плавающей величиной. При выполнении осуществляются обычные арифметические преобразования. Пример: double u = 5; u = -u; /* переменной u присваивается ее отрицание, т.е. u принимает значение -5 */ Операция логического отрицания «НЕ» (!) вырабатывает значение 0, если операнд есть истина (не нуль), [...]
Ноябрь 29th, 2009 | Категория:
1.3. Выражения и присваивания | нет комментариев
Эти операции используются для работы с переменными типа указатель. Операция разадресации (*) осуществляет косвенный доступ к адресуемой величине через указатель. Операнд должен быть указателем. Результатом операции является величина, на которую указывает операнд. Типом результата является тип величины, адресуемой указателем. Результат не определен, если указатель содержит недопустимый адрес. Рассмотрим типичные ситуации, когда указатель содержит недопустимый адрес: [...]
Ноябрь 29th, 2009 | Категория:
1.3. Выражения и присваивания | нет комментариев
С помощью операции sizeof можно определить размер памяти которая соответствует идентификатору или типу. Операция sizeof имеет следующий формат: sizeof(выражение) . В качестве выражения может быть использован любой идентификатор, либо имя типа, заключенное в скобки. Отметим, что не может быть использовано имя типа void, а идентификатор не может относится к полю битов или быть именем функции. [...]
Ноябрь 29th, 2009 | Категория:
1.3. Выражения и присваивания | нет комментариев
К этому классу операций относятся операции умножения (*), деления (/) и получение остатка от деления (%). Операндами операции (%) должны быть целые числа. Отметим, что типы операндов операций умножения и деления могут отличаться, и для них справедливы правила преобразования типов. Типом результата является тип операндов после преобразования. Операция умножения (*) выполняет умножение операндов. int i=5; [...]
Ноябрь 29th, 2009 | Категория:
1.3. Выражения и присваивания | нет комментариев
К аддитивным операциям относятся сложение (+) и вычитание (-). Операнды могут быть целого или плавающего типов. В некоторых случаях над операндами аддитивных операций выполняются общие арифметические преобразования. Однако преобразования, выполняемые при аддитивных операциях, не обеспечивают обработку ситуаций переполнения и потери значимости. Информация теряется, если результат аддитивной операции не может быть представлен типом операндов после преобразования. [...]
Ноябрь 29th, 2009 | Категория:
1.3. Выражения и присваивания | нет комментариев
Операции сдвига осуществляют смещение операнда влево (<<) или вправо (>>) на число битов, задаваемое вторым операндом. Оба операнда должны быть целыми величинами. Выполняются обычные арифметические преобразования. При сдвиге влево правые освобождающиеся биты устанавливаются в нуль. При сдвиге вправо метод заполнения освобождающихся левых битов зависит от типа первого операнда. Если тип unsigned, то свободные левые биты [...]
Ноябрь 29th, 2009 | Категория:
1.3. Выражения и присваивания | нет комментариев
К поразрядным операциям относятся: операция поразрядного логического «И» (&), операция поразрядного логического «ИЛИ» (|), операция поразрядного «исключающего ИЛИ» (^). Операнды поразрядных операций могут быть любого целого типа. При необходимости над операндами выполняются преобразования по умолчанию, тип результата – это тип операндов после преобразования. Операция поразрядного логического И (&) сравнивает каждый бит первого операнда с соответствующим [...]
Ноябрь 29th, 2009 | Категория:
1.3. Выражения и присваивания | нет комментариев
Операция простого присваивания используется для замены значения левого операнда, значением правого операнда. При присваивании производится преобразование типа правого операнда к типу левого операнда по правилам, упомянутым раньше. Левый операнд должен быть модифицируемым. Пример: int t; char f; long z; t=f+z; Значение переменной f преобразуется к типу long, вычисляется f+z ,результат преобразуется к типу int и [...]
Ноябрь 29th, 2009 | Категория:
1.3. Выражения и присваивания | нет комментариев