Выражения в операторах языка программирования
C-51
Выражением называется комбинация знаков операций и операндов, результатом которой является определенное значение. Знаки операций определяют действия, которые должны быть выполнены над операндами. Каждый операнд в выражении в свою очередь может быть выражением. Значение выражения зависит от расположения знаков операций и круглых скобок в выражении, а также от приоритета выполнения операций.
Выражение в языке программирования С-51 состоит из операндов, которые комбинируются при помощи различных арифметических или логических операций, а также операций отношения. Над переменными-указателями возможно проведение адресных операций.
Операндом в выражении может быть переменная, числовая константа, подпрограмма-функция или указатель. Любой операнд, который имеет константное значение, называется константным выражением. Каждый операнд имеет тип.
Если в качестве операнда используется константа, то ему соответствует значение и тип представляющей его константы. Целая константа может быть типа int, long, unsigned int, unsigned long, в зависимости от ее значения и от формы записи. Символьная константа имеет тип int. Константа с плавающей точкой всегда имеет тип float.
При вычислении выражений тип каждого операнда может быть преобразован к другому типу. Преобразования типов могут быть неявными, при выполнении операций и вызовов функций, или явными, при выполнении операций приведения типов.
В выражениях в качестве операндов могут использоваться подвыражения. Подвыражение - это обычное выражение, заключенное в скобки. Подвыражения могут использоваться для группировки частей выражения, точно так же, как и в обычной алгебраической записи. Использование подвыражений позволяет сократить количество операторов в программе, а значит и объем исходного текста программы , но затрудняет отладку этой программы.
В языке программирования C-51 используются арифметические операции, результат которых зависит от типа операндов:
· + суммирование
· - вычитание
· умножение
· / деление
· % вычисление остатка от целочисленного деления
В языке программирования C-51 также определено несколько одноместных арифметических операций:
· '-' изменение знака операнда на противоположное значение
· '+' знак плюс не влияет на значение операнда
· ++ увеличение значения операнда на единицу
· -- уменьшение значения операнда на единицу
· Над операндами можно осуществлять логические операции:
· '&&' логическое "и"
· '&' побитовое логическое "и"
· '||' логическое "или"
· '|' побитовое логическое "или"
· '^' "исключающее или" (суммирование по модулю два)
Здесь следует объяснить различие между логическими и побитовыми логическими операциями. Дело в том, что в стандартном языке ANSI C не существует битовых переменных. Для хранения битовых значений истина '1' и ложь '0' используются стандартные целые типы переменных. В простейшем случае это байт. При этом все значения переменной, отличающиеся от 0 считаются 1
В языке программирования C-51 также определено несколько одноместных логических операций:
· '!' инверсия операнда
· '~' побитовая инверсия операнда
В условном операторе и операторах цикла используются операции отношения:
· < меньше
· больше
· <= меньше или равно
· >= больше или равно
· == равно
· != не равно
Над переменными-указателями возможно проведение адресных операций.
· '*' операция косвенной адресации
· '&' вычисление адреса переменной
Операция косвенной адресации '*' осуществляет доступ к переменной при помощи указателя. Результатом операции является значение переменной, на которую указывает операнд. Типом результата является тип переменной, адресуемой указателем.
Операция вычисления адреса переменной '&' дает адрес ячейки памяти своего операнда. Операндом может быть любой идентификатор. Имя функции или массива также может быть операндом операции вычисления адреса переменной, хотя в этом случае знак операции вычисления адреса переменной является лишним, так как имена массивов и функций и так являются адресами. Операция вычисления адреса переменной не может применятся к элементам структуры, являющимися полями битов, и к объектам с классом памяти register.
Дата добавления: 2015-10-09; просмотров: 1087;