- •Структура программы на языке с
- •Int main(список параметров)
- •Библиотека и компоновка
- •Словарь терминов
- •Выражения
- •Переменные
- •Инициализация переменных
- •Константы
- •Строковые константы
- •Специальные символьные константы
- •Оператор присваивания
- •Множественные присваивания
- •Арифметические операции
- •Операции увеличения (инкремента) и уменьшения (декремента)
- •Сводка приоритетов операций
- •Выражения
- •Явное преоразование типов: операция приведения типов
- •Операция определения размера sizof
- •Операторы
- •Int a, b, c; // объявление переменных
- •Пробелы и круглые скобки
- •Логические значениия истина (True) и ложь (False) в языке с
- •Условные операторы Оператор if
- •If (выражение) оператор;
- •Int magic; /* магическое число */
- •Int guess; /* попытка игрока */
- •Int magic; /* магическое число */
- •Int guess; /* попытка игрока */
- •If(k) statement 2; /* этот if */
- •Int magic; /* магическое число */
- •Оператор выбора - switch
- •Вложенные операторы switch
- •Цикл for
- •Бесконечный цикл
- •Варианты цикла for
- •Бесконечный цикл
- •Цикл for без тела цикла
- •Цикл while
- •Случае цикл требует повторить ввод. Цикл do-while
- •Цикл do-while часто используется в функциях выбора пунктов меню. Если пользователь вводит допустимое значение, оно возвращается в качестве значения функции. В противном
- •Оператор перехода
- •Оператор return
- •Оператор goto
- •Оператор break
- •Функция exit()
- •Void exit (int код_возврата);
- •Оператор continue
- •Int n, sum; // sum - сумма цифр числа
- •Оператор-выражение
- •Далее адреса Операция получения адреса (&) и раскрытия ссылки (*)
- •Одномерные массивы
Множественные присваивания
В одном операторе присваивания можно присвоить одно и то же значение многим переменным. Для этого используется оператор множественного присваивания,
например:
x = y = z = 0;
Следует отметить, что в практике программирования этот прием используется очень часто.
Арифметические операции
В табл. 2.4 приведены арифметические операции С. Операции +, —, * и / работают так же, как и в большинстве других языков программирования. Их можно применять почти ко всем встроенным типам данных. Если операция / применяется к целому или символьному типам, то остаток от деления отбрасывается. Например, результатом операции 5/2 является 2.
Оператор
|
Операция |
| |
- |
Вычитание, также унарный минус |
| |
+ |
Сложение |
| |
* |
Умножение |
| |
/ |
Деление |
| |
% |
Остаток от деления |
| |
-- |
Декремент, или уменьшение |
| |
++ |
Инкремент, или увеличение | ||
Таблица 2.4. Арифметические операции
|
|
|
Оператор деления по модулю % в Сработает так же, как и в других языках,его результатом является остаток от целочисленного деления.
Этот оператор, однако, нельзя применять к типам данных с плавающей точкой.
Операции увеличения (инкремента) и уменьшения (декремента)
В языке С есть два полезных оператора, значительно упрощающие широко распространенные операции.Это инкремент ++ и декремент --.
Оператор ++ увеличивает значение операнда на 1, а — уменьшает на 1. Иными словами,
x = x+1; можно записать как++x;
Аналогично оператор
x = x-1;равносилен оператору x--;
Как инкремент, так и декремент могут предшествовать операнду (префиксная форма) или следовать за ним (постфиксная форма).
Например
x = x+1;можно записать как в виде
++x; (префиксная форма)
так и в виде
x++;(постфиксная форма)
Однако префиксная и постфиксная формы отличаются при использовании их в выражениях.
Если оператор инкремента или декремента предшествует операнду,
то сама операция выполняется до использования результата в выражении.
Если же оператор следует за операндом,
то в выражении значение операнда используется до выполнения операции инкремента или декремента.То есть для выражения эта операция как бы не существует, она выполняется только для операнда.
Например,
x = 10;
y = ++x;
присваивает yзначение 11.
Однако если написать
x = 10;
y = x++;
то переменной yбудет присвоено значение 10.
В обоих случаях х присвоено значение 11, разница только в том, когда именно это случилось, до или после присваивания значения переменной у.
Большинство компиляторов С генерируют для инкремента и декремента очень быстрый, эффективный объектный код,значительно лучший, чем для соответствующих операторов присваивания. Поэтомувезде, где это возможно, рекомендуется использовать инкремент и декремент.
Паппас – преобразование выражений
Приоритет выполнения арифметических операторов следующий:
Наивысший ++ --
- (унарный минус)-
* / %
Наинизший + -
Операции с одинаковым приоритетом выполняются слева направо. Используя круглые скобки, можно изменить порядок вычислений. В языке С круглые скобки интерпретируются компилятором так же, как и в любом другом языке программирования: они как бы придают операции (или последовательности операций) наивысший приоритет.