В следующем примере программа выводит символ новой строки (т.е. переходит на новую строку), выводит символ табуляции (т.е. переходит на первую позицию табуляции) и, наконец, выводит строку
#include <stdio.h> int main(void){ printf("\n\tПростой тест."); return 0;}Оператор присваивания может присутствовать в любом выражении языка С. Этим С отличается от большинства других языков программирования (Pascal, BASIC и FORTRAN), в которых присваивание возможно только в отдельном операторе.
Общая форма оператора присваивания:
имя_переменной=выражение;Выражение может быть просто константой или сколь угодно сложным выражением. В отличие от Pascal или Modula-2, в которых для присваивания используется знак ":=", в языке С оператором присваивания служит единственный знак присваивания "=".
Адресатом (получателем), т.е. левой частью оператора присваивания должен быть объект, способный получить значение, например, переменная.
Если в операции встречаются переменные разных типов, происходит преобразование типов. В операторе присваивания действует простое правило: значение выражения в правой части преобразуется к типу объекта в левой части.
В одном операторе присваивания можно присвоить одно и то же значение многим переменным. Для этого используется оператор множественного присваивания,
например:
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, разница только в том, когда именно это случилось, до или после присваивания значения переменной у.
Большинство компиляторов С генерируют для инкремента и декремента очень быстрый, эффективный объектный код, значительно лучший, чем для соответствующих операторов присваивания. Поэтому везде, где это возможно, рекомендуется использовать инкремент и декремент.
Паппас – преобразование выражений
Приоритет выполнения арифметических операторов следующий:
Наивысший ++ -- - (унарный минус)- * / % Наинизший + -
Операции с одинаковым приоритетом выполняются слева направо. Используя круглые скобки, можно изменить порядок вычислений. В языке С круглые скобки интерпретируются компилятором так же, как и в любом другом языке программирования: они как бы придают операции (или последовательности операций) наивысший приоритет.
|
|
|
Дата добавления: 2014-01-06; Просмотров: 394; Нарушение авторских прав?; Мы поможем в написании вашей работы!
Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет