Արտահայտությունը, դա C++ համակարգի տարր կամ տարրերի համախումբ է, որի կատարման արդյունքում ստացվում է որոշակի տեսակի արժեք: Արտահայտությունները կազմված են օպերանդներից, գործողությունների նշաններից, բացող և փակող փակագծերից:
Արտահայտություններում որպես օպերանդներ կարող են հան- դես գալ լիտերալներ, անվանումով հաստատուններ, փոփոխականներ, հղումներ, թվարկվող տիպի տվյալներ, ֆունկցիաներ և այլ տիպի տվյալներ, որոնք կուսումնասիրենք հետագայում:
Արտահայտության արժեքը հաշվելու համար առաջին հերթին որոշ-վում են ֆունկցիաների արժեքները, որից հետո կատարվում են փակագծե- րի մեջ եղած գործողությունները: Մնացած դեպքերում հաշվարկների կա-տարման հաջորդականությունը կախված է արտահայտությունում հանդես եկող գործողությունների առաջնահերթությունից ևհաջորդականությունից:
Սահմանված է գործողությունների կատարման առաջնահեր-թության հետևյալ կարգը`
Առաջին` կատարվում է` մեկտեղանի ++ -- ! + - sizeof
Երկրորդ` կատարվում է` * / %
Երրորդ` կատարվում է` երկտեղանի + -
Չորրորդ` կատարվում է` < <= > >= == !=
Հինգերորդ` կատարվում է` &&
Վեցերորդ` կատարվում է`II
Յոթերորդ` կատարվում է`= += -= *= /= %=
գործողությունները:
Եթե ամենաբարձր առաջնահերթություն ունեցող մեկտեղանի ++, --, !, + , - և sizeof գործողությունները անմիջապես հաջորդում են մեկը մյուսին, ապա նրանք կատարվում են հաջորդաբար աջից ձախ: Մնացած բոլոր գործողությունների կատարման ժամանակ, եթե միևնույն առաջնահերթություն ունեցող գործողությունները հաջորդում են մեկը մյուսին, ապա նրանք կատարվում են հաջորդաբար ձախից դեպի աջ : Օրինակ`
f1*f2/2/f3
արտահայտության արժեքը հաշվարկվում է հետևյալ հաջորդականութ-յամբ` նախ f1-ը բազմապատկվում է f2-ով, հետո ստացված արտա- դրյալը բաժանվում է 2-ի, վերջում ստացված արժեքը բաժանվում է f3-ի: Փակագծերի օգնությամբ կարելի է փոխել գործողությունների կատար-ման կարգը: Այսպես օրինակ` օգտագործելով փակագծեր կարելի է կազմել վերևում գրված արտահայտությանը համարժեք արտահայ-տություն, որը կունենա հետևյալ տեսքը`
f1*f2/(2*f3)
Թիվ 6 հավելվածում բերված են C++ համակարգում ընդգրկված բոլոր գործողությունները և նրանց կատարման առաջնահերթությունները:
Комментариев нет:
Отправить комментарий