Операции приведения типов 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

Наши рекомендации