Операции приведения типов type.
В Си позволяется задавать явное приведение типов, используя унарную операцию type.
выр.(любой тип Си)
Эта операция приводит выражение к типу справа
Sqrt((double)n);
Операция приведения типов не изменяет типа аргумента,а лишь вырабатывает выражение этого типа.
13.1,Преобразование типов в выражения. Правила приведения типов.
Операнды бинарной операции могут быть разного типа. В этом случае перед ее выполнением компилятор предварительно приводит операнды к одному типу в соответстви с правилами приведения типов. Обычно автоматически выполняются те преобразования, к-рые без какой-либо потери информации превращают операнды с меньшим диапазоном в операнды с большим диапазоном. Операции в к-рых участвуют операнды и происходит изменение значений переменных с большим диапазоном в переменные с ментшим диапазоном впринципе допустим, но могут повлечь предупреждение. Выражения не имеющие смысла (число с плавающей точкой в виде индекса) не допускаются.
Правила приведения типов.
1.Операнды разных типов приводятся к старшему, т.е. более длинному типу.
Порядок старшинства типов: longdouble, double, float, unsigned long, longint, unsigned, int, short, char.
2.Если в выражении нет беззнаковых операндов, то действуют такие правила:
1)если один из операндов принадлежит типу longdouble, то другой приводится к типу longdouble.
2) если один из операндов принадлежит типу double, то другой приводится к типу double.
если один из операндов принадлежит типу int, то другой приводится к типу int. если один из операндов принадлежит типу float, то другой приводится к типу float.
3)операнды char, short, приводятся к int
4) операнды long приводятся к long.
При операции присваивания , результат приводится к тпу
13.2,Преобразование типов в выражения. Правила приведения типов.
переменной слева от знака присваивания. В этом случае может произойти преобразование от старшего типа к младшему.
Знаковые операнды.
Литера превращается в целое посредством размножения знаков(int, unsigned int, long, unsigned long).Преобразование целых типов в типы с плавающей точкой происходят по специальным библиотечным процедурам с заполнением свободных битов нулями. Это преобразование всегда корректно. Преобразование типа с плавающей точкой в целые типы выполняется по библиотечным процедурам и дает ближайшее целое(т.е. дробная часть отбрасывается, какой бы она не была ).
Int I; float f = 3.8;
I = f; [3]
Преобразование старших целых типов в младшие выполняется отбрасыванием старших битов.
Операции приведения типов.(type)
Все выше перечисленные операции приведения типов выполняются автоматически при смешивании в одном выражении операндов разных типов( неявное риведение типов). В Си позволяется задавать явное приведение типов, используя унарную операцию type.
выр.(любой тип Си)
Эта операция приводит выражение к типу справа
Sqrt((double)n);
Операция приведения типов не изменяет типа аргумента,а лишь вырабатывает выражение этого типа.
Управление вычислительными процессами. Конструкции if-else, else-if.
Инструкцией в языке Си наз любое выражение ,заканчивающееся ;Инструкции могут быть простыми и составными. Составная инструкция или блок- это любая совокупность простых инструкций, заключенных в {}
{[объявление]
инструкция
[инструкция]…
}
Инструкция ветвления
Выбирает из группы альтернатив возможное выполнение продолжения вычислительного процесса.
В Си эти инструкции организованы как :
If- else, switch
1.if-else
if(выр) инструкция1
[else инстр2]
Вначале вычисляется выражение . если оно истино(!=0), то выполняется инстр1, если выражение ложно, то выполняется инстр2. Если else нет, то выполняется следующая за if инструкция.
Допускаются вложенные инструкции if- else. При вложенных инструкциях else- часть связывается с ближайшим if , у к-рого нет своего else.
Конструкция else-if
if(выр)
инстр.
еlse if(выр)
инстр.
- - - -
еlse if(выр)
инстр.
еlse инстр.
Эта конструкция представляет собой последовательность инструкций if-else и используется для многоступенчатого принятия решения. Выражения вычисляются попорядку, как только встречается выр = true выполняется его инструкция. На этом последовательность проверок прекращается. Последняя else