КАТЕГОРИИ: Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748) |
Выражение – это представление в тексте программы значения
Допустимы массивы структур. Разрешается вкладывать структуры одна в другую. Пример: 1. struct star { long nom_GC; //Номер по каталогу GC float mv; //Блеск (звездная величина) char spectr[5]; //Спектральный класс struct fist { double alfa; //Прямое восхождение double delta; //Склонение } koord; /*переменная koord представлена составным элементом (вложенной структурой) типа fist*/ struct { double alfa; //Собств. движение по alfa double delta; // ------ ------- по delta } move; char rem[15]; }; //Особенности(прим)
Пример: struct year { /* Сведения о погоде за год */ struct { double max, min, mid; } temperature; struct { double max, min, mid; } humidity; struct { double max, min, mid; } pressure; int number_of_observations; } weather[12]; Глава 4 операции и ВЫРАЖЕНИЯ Каждое выражение состоит из одного или нескольких операндов, символов операций и ограничителей, в качестве которых чаще всего выступают круглые скобки (). Назначение любого выражения – формирование некоторого значения. В зависимости от типа формируемых значений определяются типы выражений. Если значениями выражений являются целые или вещественные числа, то говорят об арифметических выражениях. Операндами для арифметических выражений служат константы и переменные арифметических типов, а также выражения, заключенные в круглые скобки. Выражения отношения и логические выражения традиционно должны давать одно значение: истина или ложь. В СИ истина – всегда ненулевое значение, 0 – ложь. Отношение определяется как пара арифметических выражений, соединенных (разделенных) знаком операции отношения. Операндами логических выражений являются выражения отношения. Для формирования и последующего вычисления выражений используются операции. Для изображения одной операции в большинстве случаев используется несколько символов. В таблице приведены все знаки операций, определенные стандартом языка. Операции в таблице разбиты на группы в соответствие с их рангами.
За исключением операций “[]”, “()” и “?:” все знаки операций распознаются компилятором как отдельные лексемы. В зависимости от контекста одна и та же лексема может обозначать разные операции, т.е. один и тот же знак операции может употребляться в различных выражениях и по разному интерпретироваться в зависимости от контекста. Например, бинарная операция & – это поразрядная конъюнкция, а унарная & – это операция получения адреса. Порядок выполнения выражения однозначно определяется рангами и ассоциативностью входящих в него операций. Изменить данный порядок можно только используя (). Операции ранга 1 имеют наивысший приоритет. Операции одного ранга имеют одинаковый приоритет, и если их в выражении несколько, то они выполняются в соответствие с правилом ассоциативности либо слева направо (à), либо справа налево (ß). Если один и тот же знак операции приведен в таблице дважды (например знак *), то первое появление (с меньшим по номеру, т.е. старшим по приоритету, рангом) соответствует унарной операции, а второе – бинарной. 4.1 Унарные (одноместные) операции
Для изображения одноместных префиксных и постфиксных операций используются следующие символы: & – операция получения адреса операнда. Нельзя &(x+1). * – операция обращения по адресу, т.е. раскрытия ссылки, иначе операция разыменования (доступа по адресу к значению того объекта, на который указывает операнд). Оператором должен быть указатель. – – унарный минус, изменяет знак арифметического операнда. + – унарный плюс, введен для симметрии с унарным минусом. ~ – поразрядное инвертирование внутреннего двоичного кода целочисленного аргумента – побитовое отрицание. Пример: Unsigned char a: A=201: (=c9 (16) = 11001001(2)) ~A=54: (= 36 (16) = 00110110(2)) ! – логическое отрицание (НЕ) значения операнда. Применяется к стандартным операндам. Целочисленный результат 0 (если операнд не нулевой, т.е. истинный) или 1 (если операнд нулевой, т.е. ложный). Напомним, что в качестве логических значений в языке используются целые числа: 0 – ложь и не нуль, т.е. (!0) – истина. Отрицание любого ненулевого числа будет 0, а отрицанием 0 будет 1. Таким образом:!1 равно 0;!2 равно 0;!(–5) равно 0;!0 равно 1; ++ – увеличение на единицу (инкремент или автоувеличение); имеет две формы: ++<имя> префиксная операция – увеличение значения операнда на 1 до его использования. Ассоциативность справа в соответствие со стандартом. <имя>++ постфиксная операция – увеличение значения операнда на 1 после его использования. Ассоциативность слева в соответствие со стандартом.
- выражение ++m увеличивает на 1 значение m, и это полученное значение используется как значение выражения ++m (префиксная форма). - выражение – – k уменьшает на 1 значение k, и это полученное значение используется как значение выражения – –k (префиксная форма). - выражение i++ (постфиксная форма) уменьшает на 1 значение i, однако значением выражения i++ будет предыдущее значение i (до его увеличения). - выражение j – – (постфиксная форма) уменьшает на 1 значение j, однако значением выражения j – – будет предыдущее значение j (до его уменьшения.
Дата добавления: 2014-01-05; Просмотров: 586; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |