Deprecated: mysql_connect(): The mysql extension is deprecated and will be removed in the future: use mysqli or PDO instead in /home/studb20/public_html/index.php on line 4
 1.3.3 Перетворення типу - Програмування С, С++теорія та практика (частина 1) - Studbook

Програмування С, С++теорія та практика (частина 1)

1.3.3 Перетворення типу

Згадаємо, що компілятор Паскаля виконує автоматичне перетворення типів даних, особливо в математичних виразах, коли найчастіше цілочисельний тип перетворюється у тип з плаваючою комою. Цей стиль підтримує і Сі, причому значення типу скаг та іпі в арифметичних виразах змішуються:          кожний з таких символів

автоматично перетворюється в ціле. Взагалі, якщо операнди мають

різні типи, перед тим, як виконати операцію, молодший тип “підтягується” до старшого. Результат - старшого типу. Отже,

•          скаг та зкогі перетворюються в іпі;

•       /Іоаі перетворюється в йоиЬІе;

•       якщо один з операндів Іопд йоиЬІе, то і другий перетворюється в

Іопд йоиЬІе;

•      якщо один з операндів Іопд, тоді другий перетворюється відповідно до того ж типу, і результат буде Іопд;

•      якщо один з операндів ипзідпей, тоді другий перетворюється відповідно до того ж типу, і результат буде ипзідпей.

Приклад:

йоиЬІе  зй;

ипзідпей. сЬаг сЬ;

ипзідпей Іопд іп;

іп£ і ;

/* ... */

зй = £^*(і+сЬ/іп);

При виконанні оператора присвоювання в даному прикладі правила перетворення типів будуть використані наступним чином. Операнд ск перетворюється до ипзідпей іпі. Після цього він перетворюється до типу ипзідпей Іопд. За цим же принципом і перетворюється до ипзідпей Іопд і результат операції, що розміщена в круглих дужках буде мати тип ипзідпей Іопд. Потім він перетворюється до типу йоиЬІе і результат всього виразу буде мати тип йоиЬІе.

Взагалі, тип результату кожної арифметичної операції виразу є тип того операнду, який має у відповідності більш високий тип приведення.

Але, окрім цього в Сі, з’являється можливість і примусового перетворення типу, щоб дозволити явно конвертувати (перетворювати) значення одного типу даних в інший. Загальний синтаксис перетворення типу має два варіанти :

1)    . (новий_тип) вираз ;

2)    . новий_тип (вираз) ;

Обидва варіанти перетворення виглядають так:

сЬаг Іе'Ь'Ьег = 'а' ;

іп£ пазс = іп£ (Іе'Ь'Ьег) ;

Іопд іазс = (Іопд) Іе'Ь'Ьег;

 

15