ВУЗ:
Составители:
41
3.6. Арифметические преобразования
При выполнении арифметических операций в языке С действуют
следующие правила преобразования типов:
1) операнды типа char и short преобразуются к типу int, а типа float
— к типу double;
2) если один из двух операндов имеет тип double, другой операнд
преобразуется к типу double (предполагается, что второй операнд не имеет
тип double) и результат операции будет также типа double;
3) если один из двух операндов имеет тип long, другой операнд
преобразуется к типу long (предполагается, что он не имеет тип long), и
результат будет также иметь тип long;
4) если один из операндов имеет тип unsigned, тогда и другой
операнд преобразуется к типу unsigned (предполагается, что он не был
типа unsigned),. и результат также будет иметь тип unsigned;
5) если не выполнены условия 1 -4, оба операнда должны быть типа
int, и результат имеет тип int.
Таким образом, значения приводятся к тому типу, который
позволяет представить больший диапазон значений (во избежание
переполнения ).
3.7. Константные выражения
Константным называется выражение, которое всегда дает
единственное значение. В языке С константные выражения требуются: при
инициализации внешних статических переменных; после ключевого слова
case в операторе switch; при определении границ массива. В последних
двух случаях константное выражение может состоять из целых и/или
символьных констант и операции sizeof.
Для объединения констант в выражения могут использоваться
бинарные операции, унарный минус и тройная операция .
При инициализации внешних или статических переменных может
также использоваться операция взятия адреса ( & ), если она применяется к
предварительно определенным внешним или статическим объектам и
внешним или статическим массивам , индексированным константными
выражениями.
41 3.6. Арифметические преобразования При выполнении арифметических операций в языке С действуют следующие правила преобразования типов: 1) операнды типа char и short преобразуются к типу int, а типа float — к типу double; 2) если один из двух операндов имеет тип double, другой операнд преобразуется к типу double (предполагается, что второй операнд не имеет тип double) и результат операции будет также типа double; 3) если один из двух операндов имеет тип long, другой операнд преобразуется к типу long (предполагается, что он не имеет тип long), и результат будет также иметь тип long; 4) если один из операндов имеет тип unsigned, тогда и другой операнд преобразуется к типу unsigned (предполагается, что он не был типа unsigned),. и результат также будет иметь тип unsigned; 5) если не выполнены условия 1 -4, оба операнда должны быть типа int, и результат имеет тип int. Таким образом, значения приводятся к тому типу, который позволяет представить больший диапазон значений (во избежание переполнения). 3.7. Константные выражения Константным называется выражение, которое всегда дает единственное значение. В языке С константные выражения требуются: при инициализации внешних статических переменных; после ключевого слова case в операторе switch; при определении границ массива. В последних двух случаях константное выражение может состоять из целых и/или символьных констант и операции sizeof. Для объединения констант в выражения могут использоваться бинарные операции, унарный минус и тройная операция. При инициализации внешних или статических переменных может также использоваться операция взятия адреса ( & ), если она применяется к предварительно определенным внешним или статическим объектам и внешним или статическим массивам, индексированным константными выражениями.
Страницы
- « первая
- ‹ предыдущая
- …
- 39
- 40
- 41
- 42
- 43
- …
- следующая ›
- последняя »