Студопедия

КАТЕГОРИИ:

АстрономияБиологияГеографияДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРиторикаСоциологияСпортСтроительствоТехнологияФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника


Рада___________________________________________________________________________




Не жалійте часу на придумування відповідних імен. Ім'я повинне відображати сенс величини, що зберігається, бути легко розпізнаваним і, бажано, не містити символів, які можна переплутати один з одним, наприклад, 1,1 (рядкова L) або I (прописна i). Для розділення частин імені можна використовувати знак підкреслення. Не давайте змінним імена, що демонструють знання іноземного сленгу, — адже «як ви човен назвете, так він і попливе». Як правило, змінним з великою областю видимості даються довші імена (бажано з префіксом типу), а для змінні, все життя яких проходить впродовж декількох рядків початкового тексту, вистачить і однієї букви з коментарем при оголошенні.______________________

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

У приведеному вище прикладі тільки опис 3 є оголошенням, але не визначенням. Змінна може бути оголошена багато разів, але визначена тільки в одному місці програми, оскільки оголошення просто описує властивості змінної, а визначення пов'язує її з конкретною областю пам'яті.

Перетворення типів.

Будь-який арифметичний вираз ніби х+у має тип і значення. Наприклад, якщо обидві змінні х і у одного типу (скажемо int), то х+у — теж ціле. Якщо х і у різних типів, то х+у називається змішаним виразом. Припустимо, х типу short, а у типу int. Тоді значення х буде перетворено до цілого, і вираз х+у одержить тип int. Відмітьте, що значення х в пам'яті залишається незмінним. Перетвориться тільки тимчасова копія х при обчисленні значення виразу. Тепер припустимо, що обидві змінні х і у мають тип short. Хоча х+у і не є змішаним виразом, всеодно відбудеться автоматичне перетворення; х і у будуть підвищені до int і вираз буде цілим. Загальні правила прості:

Автоматичне перетворення виразу “х операція у”

1. Bcі bool, char, short або enum підвищуються до int. Цілі типи, які не можуть бути представлені як int, підвищуються до unsigned int.

2. Якщо після першого кроку вираз залишається змішаним, то відповідно до ієрархії типів
int < unsigned int< long <unsigned long < float < double < long double
операнд нижчого типу підвищується до вищого типу, і значення виразу одержує цей тип. Відмітьте, що unsigned int підвищується до unsigned long, якщо long не може містити всі значення unsigned int.

Щоб проілюструвати неявні перетворення, ми зробимо наступні оголошення і перерахуємо різні змішані вирази разом з відповідними типами:

Оголошення: char с; long lg; double d; int i;short s; float f; unsigned u;

 

Вираз Тип Вираз Тип
с - s / i int u * 3 – i Unsigned
u * 3.0 – i double f * 3 – i Float
с + 1 int 3 * s * lg long
с + 1. double d + s double

Автоматичне перетворення може відбуватися при присвоєнні. Наприклад:

d = i

переведе ціле значення i в double і потім присвоїть його d; тип всього виразу буде double. Підвищення (або розширення) типу, як у виразі d = i, зазвичай буде виконано правильно, а ось пониження (або звуження) типу, як у виразі i = d, може привести до втрати інформації. Тут дробова частина d буде відкинута. Що саме відбудеться, у кожному випадку залежить від машини.

На додаток до неявних перетворень, які можуть відбуватися при присвоєні і в змішаних виразах, існує явне перетворення, зване приведенням (cast).

Хай i — ціле, тоді


Поделиться:

Дата добавления: 2014-12-03; просмотров: 277; Мы поможем в написании вашей работы!; Нарушение авторских прав





lektsii.com - Лекции.Ком - 2014-2024 год. (0.005 сек.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав
Главная страница Случайная страница Контакты