шості операцій характерно неявне приведення типів, тому вони є в деякому роді універсальними. p align="justify"> Операції в мові Сі більш універсальні через відсутність логічних типів і скасування типів рядків і символів, однак і вони мають свої особливості. Список допустимих операцій у Сі наведено в таблиці 2.3.2 [10]. У мові існує жорстка ієрархія по пріоритету виконання операцій, що дозволяє більш детально опрацьовувати структуру програм. Також введено поняття асоціативності - пріоритет виконання операцій може бути як зліва направо, так і справа наліво. Більшість операцій допустимі для всіх типів, виключення становлять побітові і логічні операції, а так само операції ділення без залишку і залишок від ділення для речових типів. Особливістю мови Сі є тернарний оператор умови (x? Y; z), який представляє найпростіший умовний перехід. br/>
Таблиця 2.3.2 - Операції мови Сі
> Зрушення вліво і вправоБінарний11Слева направо <> <=> = ОтношеніяБінарний10Слева направо ==! = Рівність/неравенствоБінарний9Слева направо & Побітове ІБінарний8Слева направо ^ Побітове виключає ІЛІБінарний7Слева направо | Побітове ІЛІБінарний6Слева направо && Логічне ІБінарний5Слева направо | | Логічне ІЛІБінарний4Слева направо? ; УсловіеТернарний3Справа наліво = + = - = * =/=% = <<=>> = & = ^ = | = ПрисваиваниеБинарный2Справа оценкаБінарний1Слева направо
Приведення типів у Сі відбувається автоматично в тих місцях, де це можливо без потенційних втрат. Так, наприклад, приведення типу char до типу float компілятор проведе сам, а зворотне перетворення доведеться робити явно. Також у Сі у порівнянні з Паскалем з'являється адресна арифметика - арифметичні операції допустимі для покажчиків, і в багатьох випадках відбувається неявне перетворення між цілочисельними типами і покажчиками. Однак ці перетворення спрацьовують не завжди. Наприклад, при привласненні вказівником целочисленной константи з метою встановити його в даний адресу компілятор повідомить про невідповідність типів. У таких випадках також необхідно явне приведення. br/>
1.4 Покажчики та векторні типи даних
У розгляді типів і операцій необхідно окремо виділити векторні типи даних і покажчики. У попередньому розділі було вказано на наявність адресної арифметики в мові Сі; необхідно вказати, до яких вигодам це призвело при роботі з векторними типами даних. p align="justify"> Під векторним типом даних розуміється організація типу за принципом структури, в якій всі елементи одног...