русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Преобразования типов


Дата добавления: 2013-12-23; просмотров: 2213; Нарушение авторских прав


Объявления переменных стандартных типов

Общий формат объявления переменных:

[<спецификатор_класса_памяти>] [<модификатор>] <тип> <имя1>[=<инициализатор1>], <имя2>[=<инициализатор2>],…, <имяN>[=<инициализаторN>];

Необязательный элемент <спецификатор_класса_памяти> (необязательный элемент далее в записи форматов будет помещаться в квадратные скобки) одно из ключевых слов: auto, register, static, extern.

Необязательные элемент <модификатор> - могут быть ключевые слова: const, volatile и др.

Модификатор const означает, что инициализация (присвоение начального значения) переменной обязательна и далее значение переменной изменять нельзя. Модификатор volatile означает, что данная переменная может быть изменена где- то в другом месте, а не обязательно в этой программе, например, программой обработки прерываний (модификатор влияет на режим оптимизацию работы компилятора).

Примеры:

int i, j=10;

const float pi=3.14; // Далее запрещено изменять значение pi

extern double x; // Это есть описание, определение переменной в другом месте.

unsigned char C1=‘A’, C2=10, C3;

 

Преобразование типа выполняется в случае, когда некоторое значение одного типа (значение переменной или результат выражения) присваивается переменной другого типа.

Преобразования типов могут выполняться неявно (по умолчанию) или существует операция явного преобразования типа.

Следует отметить, что язык Си – это язык со слабой типизацией, допустимы неявные преобразования любого стандартного типа в другой любой стандартный тип.

Неявные преобразования типов

Примеры:

double x=10.5;

char Ch=x; // Допустимо

int i=x, j=Ch;

long L=1050;

unsigned char C1=L;

Сформулируем следующие правила неявного преобразования стандартных типов.



1. Преобразование более длинного целого типа в менее длинный целый: отсекаются старшие биты.

2. Преобразование менее длинного целого типа в более длинный целый: если преобразуется беззнаковый тип, то старшие биты заполняются 0, если знаковый, то битом знака.

3. При преобразовании целых типов одинаковой длины, содержимое не меняется, может меняться интерпретация знакового бита

4. Преобразование менее длинного вещественного в более длинное: мантисса дополняется нулями справа.

5. Преобразование более длинного вещественного в менее длинное: усечение младших битов мантиссы, если значение слишком велико – результат не определен.

6. Преобразование вещественного к целому: дробная часть отбрасывается, и результат преобразуется в long, далее работают правила для целых, если значение слишком велико – результат не определен.

7. Преобразование целых к вещественным: преобразование к long, далее к вещественному, возможна потеря точности.

Явное преобразование типов

Существует операция явного преобразования типа, ее формат:

(<тип>) <операнд> или

<тип>(<операнд>)‏

Вторая форма может использоваться только, если имя типа задается одним словом, например, вторая форма не подходит для типа unsigned short и других подобных.

Примеры:

char c=(char) a;

float x=float( c );

 



<== предыдущая лекция | следующая лекция ==>
Объявления, определения и описания в языке Си | Последовательно выполняемые операторы


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.008 сек.