- •Вопрос 1
- •Вопрос 2
- •2.4. Константы
- •2.4.1. Целые константы
- •2.4.2. Длинные целые константы
- •2.4.3. Символьные константы
- •2.4.4. Вещественные константы
- •2.4.5. Перечислимые константы
- •2.5. Текстовые константы
- •Вопрос 3
- •2.2. Идентификаторы (имена)
- •2.3. Ключевые слова
- •3.2. Тип
- •Вопрос 4
- •2.3. Данные целого типа
- •Вопрос 5
- •Вопрос 6
- •11.1. Представление символьной строки при помощи одномерного массива
- •11.2. Указатель на символьную строку
- •11.3. Ввод/вывод символьных строк
- •11.4. Массивы символьных строк
- •11.5. Функции работы состроками
- •Вопрос 7
- •3.1. Операции
- •3.1.1. Арифметические операции
- •5.2. Унарные операции
- •5.5. Операции сдвига
- •5.6. Операции отношения
- •5.7. Операции равенства
- •5.8. Побитная операция и
- •5.13. Условная операция
- •3.1.2. Операция присваивания
- •Вопрос 8
- •7.3. Условный оператор if
- •7.7. Оператор выбора switch
- •7.8. Оператор break
- •7.9. Оператор continue
- •7.10. Оператор возврата return
- •6.1.2. Формы оператора if
- •6.1.3. Оператор выбора switch
- •Вопрос 9
- •7.4. Оператор цилка while
- •7.5. Оператор цикла do
- •7.6. Оператор цикла for
- •6.2.1. Оператор while
- •6.2.2. Оператор for
- •6.2.3. Оператор do-while
- •6.3.4. Применение оператора goto и меток
- •Вопрос 11
- •5.2.1. Основные форматы
- •5.2.2. Модификации форматов
- •5.3. Функция форматированного ввода scanf()
- •Вопрос 12
- •12. Работа с файлами в языке c. Функции работы с файлами. Буферизованный ввод-вывод.
- •Вопрос 13
- •1.6.2. Объявления функций
- •1.6.3. Время жизни и область видимости программных объектов
- •1.6.4. Инициализация глобальных и локальных переменных
- •Вопрос 14
- •Вопрос 15
- •Вопрос 16
- •Вопрос 17
- •Вопрос 18
- •Вопрос 19
- •Вопрос 20
5.5. Операции сдвига
Выражения с операциями сдвига << и >> группируются слева направо. Обе выполняют обычные арифметические преобразования операндов, каждый из которых должен быть целочисленным. Затем правый операнд преобразуется к типу int; тип результата совпадает с типом левого операнда. Результат не определен, если правый операнд отрицателен либо больше или равен размеру (в битах) левого операнда.
выражение_сдвига:
выражение << выражение
выражение >> выражение
Значение выражения E1<<E2 есть E1 (рассматриваемое как набор бит), сдвинутое влево на E2 бит. Oсвободившиеся биты заполняются нулями. Значение выражения E1>>E2 есть E1, сдвинутое вправо на E2 бит. Гарантируется, что правый сдвиг будет логическим (с заполнением нулями), если E1 беззнаковое, в ином случае сдвиг может оказаться арифметическим.
5.6. Операции отношения
Выражения с операциями отношения группируются слева направо.
выражение_отношения:
выражение < выражение
выражение > выражение
выражение >= выражение
выражение <= выражение
Операции < (меньше), > (больше), <= (меньше или равно) и >= (больше или равно) дают в результате 1, если указанное отношение истинно, и 0, если ложно. Тип результата - int. Выполняются обычные арифметические преобразования. Можно сравнить два указателя; результат зависит от относительного расположения в адресном пространстве указуемых объектов. Программы, использующие сравнение указателей, мобильны только в случае сравнения указателей на объекты из одного массива.
5.7. Операции равенства
выражение_равенства:
выражение == выражение
выражение != выражение
Операции == (равно) и != (не равно) в точности аналогичны операциям отношения, за исключением того, что имеют меньший приоритет. (Так, a<b==c<d равно 1, когда отношения a<b и c<d одновременно истинны либо ложны.)
Указатель можно сравнить с целым, только если целое - это константа 0. Указатель, которому присвоено значение 0, наверняка не указывает ни на какой объект; он и оказывается равным 0. Общепринято считать такой указатель пустым.
5.8. Побитная операция и
выражение_побитного_и:
выражение & выражение
Операция & ассоциативна, и выражения, содержащие &, могут быть переупорядочены. Выполняются обычные арифметические преобразования. Результат равен побитной функции И от операндов. Операция применима только к операндам целочисленных типов.
5.9. Побитная операция исключающее ИЛИ
выражение_побитного_исключающего_или:
выражение ^ выражение
Операция ^ ассоциативна, и выражения, содержащие ^, могут быть переупорядочены. Выполняются обычные арифметические преобразования. Результат равен побитной функции исключающего ИЛИ от операндов. Операция применима только к операндам целочисленных типов.
5.10. Побитная операция ИЛИ
выражение_побитного_или:
выражение | выражение
Операция | ассоциативна, и выражения, содержащие |, могут быть переупорядочены. Выполняются обычные арифметические преобразования. Результат равен побитной функции ИЛИ от операндов. Операция применима только к операндам целочисленных типов.
5.11. Логическая операция И
выражение_логического_и:
выражение && выражение
Выражения с операциями && группируются слева направо. Результат равен 1, если оба операнда ненулевые, и 0 в противном случае. В отличие от &, операция && гарантирует обработку выражений слева направо; более того, второй операнд не вычисляется, если значение первого операнда равно 0.
Операнды не обязаны иметь один и тот же тип, но каждый из них должен иметь базовый тип либо быть указателем. Результат - всегда int.
5.12. Логическая операция ИЛИ
выражение_логического_или:
выражение || выражение
Выражения с операциями || группируются слева направо. Результат равен 1, если хотя бы один из операндов ненулевой, и 0 в противном случае. В отличие от |, операция || гарантирует обработку выражений слева направо; более того, второй операнд не вычисляется, если значение первого операнда не равно 0.
Операнды не обязаны иметь один и тот же тип, но каждый из них должен иметь базовый тип либо быть указателем. Результат - всегда int.