Помогни ни да направим Uroci.net по - богат! Добави урок
Категории Други уроци Adobe Photoshop Adobe Illustrator Adobe Flash Adobe Fireworks DreamWeaver CSS и HTML Corel Draw Image Ready PHP SEO CMS Microsoft Windows Microsoft Word Microsoft Excel PowerPoint Microsoft Access Microsoft Publisher Linux Visual basic JavaScript Ajax 3ds Max Maya 3D C++
C++
Sound Forge Gimp SWiSH

C++ част.3 (Изрази и оператори)

C++ » C++
fix3d   трудност:    видян: 7549


Глава 3: Изрази и оператори.


Съдържание на трета глава :

3.1. Какво представлява изразът?
3.2. Аритметични операции
3.3. Операции за равенство и отношение, логически операции
3.4. Оператор за присвояване
3.5. Оператори за увеличаване и намаляване с 1
3.6. Операторът sizeof
3.7. Аритметичен оператор if
3.8. Оператори за работа с битове
3.9. Приоритет
3.10. Преобразуване на типове
3.11. Оператори
3.12. Оператори за управление
3.14. Операторът switch
3.15. Операторът while
3.16. Операторът for
3.17. Операторът do
3.18. Операторът break
3.19. Операторът continue
3.20. Операторът goto


Типовете данни бяха разгледани в глава 2. Ние описахме предварително дефинираните типове данни, методите за дефиниране на нови типове данни, както и как да създаваме даннови обекти. В тази глава се разглеждат предварително дефинираните операции, които могат да бъдат използувани за обработване на данните. Тези операции включват набор от оператори, които ги организират и ръководят изпълнението на програмата. В глава 4 ще бъдат обсъдени функциите и механизма за дефиниране на потребителски набор от операции.

3.1. Какво представлява изразът?

Всеки израз обединява една или повече операции. Обектите, над които се прилагат операциите се наричат операнди. Операциите се записват чрез оператори. Например, В С++ проверката за равенство се осъществява от оператора “= =”. Операторите, които имат един операнд, се наричат унарни, докато операторите с два аргумента са бинарни. Операндите на бинарните оператори се делят на леви и десни. Някои оператори представят както унарни, така и бинарни операции. Например,

*ptr

е един унарен указателен оператор. Той връща стойността, съхранена в адреса на обекта ptr. Обаче,

var1 * var2

представя бинарния оператор умножение. Той изчислява произведението на операндите си var1 и var2.

За изчисляването на един израз се изпълнява една или повече операции за да бъде даден резултат. Изключвайки случая, когато е указано обратното, резултатът, връщан от израза е стойност за четене (rvalue). Типът на резултата на един израз се определя от типа на операндите му. Когато операндите имат различен тип се извършва преобразуване на типовете съобразно предварително дефиниран набор от правила. Раздел 3.10 разглежда подробно преобразуването на типовете.

Когато в един израз се срещат две или повече операции, той се нарича съставен. Редът за изпълнение на операциите се определя според приоритета и асоциативността им. (Това ще бъде разяснено след като разгледаме предварително дефинирания набор от операции).

Най-простата форма на израз се получава от единична литерална константа или променлива.
Т.е. “операнд” без операция. Резултатът е стойността за четене на операнда. Например,

3.14159

"melancholia" upperBound

Резултатът на 3.14159 е 3.14159. Типът му е double. Резултатът на “melancholia” e адреса в паметта на първия елемент на низа. Типът му е char*. Резултатът на upperBound е нейната стойност за четене (rvalue). Типът му се определя от дефиницията на променливата.

Следващите раздели разглеждат предварително дефинираните в С++ оператори, представени в удобен за изучаването им ред.


3.2. Аритметични операции

Операция
Функция
Използуване

Умножение
Expr * expr
/
деление
expr / expr

%
деление по модул
expr % expr

Събиране
Expr + expr

изваждане
Expr - expr


Таблица 3.1 Аритметични операции

Делението на цели числа дава цяло число. Ако частното има дробна част тя се отрязва. Например, и двата израза

21 / 6;
21 / 7;

дават като резултат 3.

Оператoрът за деление по модул (“%”) изчислява остатъка от делението на две стойности. Той може да се използува само с операнди от цял тип. Левият операнд на операторът деление по модул е делимото. Делителят е десният операнд на операцията. Двата операнда трябва да са от цял тип. Следват няколко примера на правилни и неправилни изрази, използуващи оператора за деление по модул:

3.14 % 3 // error: floating point operand
21 % 6 // ok: result is 3
21 % 7 // ok: result is 0

int i;
double f;

i % 2 // ok: non-zero result indicates i is odd
i % f // ok: floating point operand

В някои случаи изчисляването на аритметичен израз ще върне неправилен или недефиниран резултат. Това се отнася за аритметични изрази. Може да се дължи на самото естество на математическата операция - деление на нула, например, - или да зависи от компютъра - препълване. Например, в променлива от тип unsigned char могат да се записват стойности от 0 до 255. При следната операция за умножение на променливата от тип unsigned char се дава стойност 256.

unsigned char uc = 32;
int i = 8;
uc = i * uc; // overflow

За да се представи 256 са необходими 9 бита. Присвояването на 256 на uc предизвиква препълване на паметта, отделена за този тип данни. Истинската стойност, записана на мястото на uc, е недефинирана и ще бъде различна за различните машини.



Страници: 1 2 3 4 »

Регистрирайте се, за да добавите коментар

реклама

© Всички права запазени. 2006-2008. Created by: Site.bg
Препоръчваме: IT Новини | Кино и игри | Диплома.бг | Paparak.bg | Тунинг Портал | uchenik.com | TRAVEL туризъм | Реферати | AmAm.bg | Иде.ли | Курсови работи | AnimeS-bg.com | Фото Форум | Запознанства | Мрежа от приятели | IT Light | Spodeli.net | Фото-Култ | IDG.BG | Teenproblem.net | Блог - Образование | Fresh-BG.com | Hanovete.com | Bulfleet.com | Mythlands.com | Ohoboho.com | Казанлък.Com | News24 | Setcom.bg | Atol.bg | Elmaz.com | MobileBulgaria.com