Главная » Просмотр файлов » Керниган и Ритчи - Язык программирования Си

Керниган и Ритчи - Язык программирования Си (793773), страница 50

Файл №793773 Керниган и Ритчи - Язык программирования Си (Керниган и Ритчи - Язык программирования Си) 50 страницаКерниган и Ритчи - Язык программирования Си (793773) страница 502019-04-24СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 50)

А6.6.).А 7.11. Оператор побитового ИИ-выражение:выражение-равенстваИ-выражение & выражение-равенстваВыполняются обычные арифметические преобразования; результат — побитовое И операндов. Операторприменяется только к целочисленным операндам.А 7.12. Оператор побитового исключающего ИЛИисключающее-ИЛИ-выражение:И-выражениеисключающее-ИЛИ-выражение ^ И-выражениеВыполняются обычные арифметические преобразования; результат — побитовое исключающее ИЛИоперандов.

Оператор применяется только к целочисленным операндам.А 7.13. Оператор побитового ИЛИИЛИ-выражение:исключающее-ИЛИ-выражениеИЛИ-выражение | исключающее-ИЛИ-выражениеВыполняются обычные арифметические преобразования; результат — побитовое ИЛИ операндов. Операторприменяется только к целочисленным операндам.А 7.14. Оператор логического Илогическое-И-выражение:ИЛИ-выражениелогическое-И-выражение && ИЛИ-выражениеОператоры && выполняются слева направо.

Оператор && выдает 1, если оба операнда не равны нулю, и 0 впротивном случае. В отличие от &, && гарантирует, что вычисления будут проводиться слева направо:вычисляется первый операнд со всеми побочными эффектами; если он равен 0, то значение выражения есть0. В противном случае вычисляется правый операнд, и, если он равен 0, то значение выражения есть 0, впротивном случае оно равно 1.Операнды могут принадлежать к разным типам, но при этом каждый из них должен иметь либоарифметический тип, либо быть указателем. Тип результата — int.А 7.15.

Оператор логического ИЛИлогическое-ИЛИ-выражение:логическое-И-выражениелогическое-ИЛИ-выражение || логическое-И-выражениеОператоры || выполняются слева направо. Оператор || выдает 1, если по крайней мере один из операндовне равен нулю, и 0 в противном случае. В отличие от |, оператор || гарантирует, что вычисления будутпроводиться слева направо: вычисляется первый операнд, включая все побочные эффекты; если он не равен0, то значение выражения есть 1. В противном случае вычисляется правый операнд, и если он не равен 0, тозначение выражения есть 1, в противном случае оно равно 0.Операнды могут принадлежать разным типам, но операнд должен иметь либо арифметический тип, либобыть указателем. Тип результата — int.А 7.16. Условный операторусловное-выражение:логическое-ИЛИ-выражениелогическое-ИЛИ-выражение ? выражение : условное-выражениеВычисляется первое выражение, включая все побочные эффекты; если оно не равно 0, то результат естьзначение второго выражения, в противном случае — значение третьего выражения.

Вычисляется только одиниз двух последних операндов: второй или третий. Если второй и третий операнды арифметические, товыполняются обычные арифметические преобразования, приводящие к некоторому общему типу, который ибудет типом результата. Если оба операнда имеют тип void, или являются структурами или объединениямиодного и того же типа, или представляют собой указатели на объекты одного и того же типа, то результатбудет иметь тот же тип, что и операнды. Если один из операндов имеет тип "указатель", а другой являетсяконстантой 0, то 0 приводится к типу "указатель", этот же тип будет иметь и результат.

Если один операндявляется указателем на void, а второй — указателем другого типа, то последний преобразуется в указательна void, который и будет типом результата.При сравнении типов указателей квалификаторы типов (А8.2) объектов, на которые указатели ссылаются, вовнимание не принимаются, но тип результата наследует квалификаторы обеих ветвей условного выражения.А 7.17. Выражения присваиванияСуществует несколько операторов присваивания; они выполняются справа налево.выражение-присваивания:условное-выражениеунарное-выражение оператор-присваивания выражение-присваиванияоператор-присваивания: один из/=%=+=-=<<= >>= &=^=|=Операторы присваивания в качестве левого операнда требуют lvalue, причем модифицируемого; это значит,что оно не может быть массивом, или иметь незавершенный тип, или быть функцией.

Тип левого операнда,кроме того, не может иметь квалификатора const; и, если он является структурой или объединением, в нихне должно быть элементов или подэлементов (для вложенных структур или объединений) сквалификаторами const.Тип выражения присваивания соответствует типу его левого операнда, а значение равно значению его левогооперанда после завершения присваивания.В простом присваивании с оператором = значение выражения замещает объект, к которому обращаетсяlvalue. При этом должно выполняться одно из следующих условий: оба операнда имеют арифметический тип(если типы операндов разные, правый операнд приводится к типу левого операнда); оба операнда естьструктуры или объединения одного и того же типа; один операнд есть указатель, а другой — указатель наvoid; левый операнд — указатель, а правый — константное выражение со значением 0; оба операнда —указатели на функции или объекты, имеющие одинаковый тип (за исключением возможного отсутствияconst или volatile у правого операнда).Выражение Е1 ор = Е2 эквивалентно выражению Е1 = Е1 ор(Е2) с одним исключением: Е1вычисляется только один раз.А 7.18.

Оператор запятаявыражение:выражение-присваиваниявыражение , выражение-присваиванияДва выражения, разделенные запятой, вычисляются слева направо, и значение левого выраженияотбрасывается. Тип и значение результата совпадают с типом и значением правого операнда. Вычислениевсех побочных эффектов левого операнда завершается перед началом вычисления правого операнда.

Вконтексте, в котором запятая имеет специальное значение, например в списках аргументов функций (А7.3.2)или в списках инициализаторов (А8.7) (здесь в качестве синтаксических единиц фигурируют выраженияприсваивания), оператор запятая может появиться только в группирующих скобках. Например, вf(a, (t=3, t+2), с)три аргумента, из которых второй имеет значение 5.А 7.19. Константные выраженияСинтаксически, константное выражение — это выражение с ограниченным подмножеством операторов:константное-выражение:условное-выражениеПри указании case-меток в переключателе, задании границ массивов и длин полей битов, на месте значенийперечислимых констант и инициализаторов, а также в некоторых выражениях для препроцессора требуютсявыражения, вычисление которых приводит к константе.Константные выражения не могут содержать присваиваний, операторов инкрементирования идекрементирования, вызовов функций и операторов-запятых; перечисленные ограничения нераспространяются на операнд оператора sizeof.

Если требуется получить целочисленное константноевыражение, то его операнды должны состоять из целых, перечислимых (enum), символьных констант иконстант с плавающей точкой; операции приведения должны специфицировать целочисленный тип, а любаяконстанта с плавающей точкой — приводиться к целому. Из этого следует, что в константном выражении неможет быть массивов, операций косвенного обращения (раскрытия указателя), получения адреса и доступа кполям структуры. (Однако для sizeof возможны операнды любого вида.)Для константных выражений в инициализаторах допускается большая свобода; операндами могут бытьконстанты любого типа, а к внешним или статическим объектам и внешним и статическим массивам,индексируемым константными выражениями, возможно применять унарный оператор &.

Унарный оператор& может также неявно присутствовать при использовании массива без индекса или функции без спискааргументов. Вычисление инициализатора должно давать константу или адрес ранее объявленного внешнегоили статического объекта плюс-минус константа.Меньшая свобода допускается для целочисленных константных выражений, используемых после #if: неразрешаются sizeof-выражения, константы типа enum и операции приведения типа.

(См. А12.5.)А 8. ОбъявленияТо, каким образом интерпретируется каждый идентификатор, специфицируется объявлениями; они не всегдарезервируют память для описываемых ими идентификаторов. Объявления, резервирующие память,называются определениями и имеют следующий вид:объявление:спецификаторы-объявления список-инициализаторов-объявителейнеобОбъявителивсписке-инициализаторов-объявителейсодержатобъявляемыеидентификаторы;спецификаторы-объявления представляют собой последовательности, состоящие из спецификаторов типа икласса памяти.спецификаторы-объявления:спецификатор-класса-памяти спецификаторы-объявлениянеобспецификатор-типа спецификаторы-объявлениянеобквалификатор-типа спецификаторы-объявлениянеобсписок-инициализаторов-объявителей:инициализатор-объявительсписок-инициализаторов-объявителей , инициализатор-объявительинициализатор-объявитель:объявительобъявитель = инициализаторОбъявители содержат подлежащие объявлению имена. Мы рассмотрим их позже, в А8.5.

Объявлениедолжно либо иметь по крайней мере один объявитель, либо его спецификатор типа должен определять тегструктуры или объединения, либо задавать элементы перечисления; пустое объявление недопустимо.А 8.1. Спецификаторы класса памятиКласс памяти специфицируется следующим образом:спецификатор-класса-памяти:autoregisterstaticexterntypedefСмысл классов памяти обсуждался в А4.Спецификаторы auto и register дают объявляемым объектам класс автоматической памяти, и этиспецификаторы можно применять только внутри функции.

Характеристики

Тип файла
PDF-файл
Размер
2,25 Mb
Тип материала
Высшее учебное заведение

Список файлов книги

Свежие статьи
Популярно сейчас
Почему делать на заказ в разы дороже, чем купить готовую учебную работу на СтудИзбе? Наши учебные работы продаются каждый год, тогда как большинство заказов выполняются с нуля. Найдите подходящий учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
7046
Авторов
на СтудИзбе
259
Средний доход
с одного платного файла
Обучение Подробнее