Ова е список на оператори во C и C++ програмските јазици. Сите опеартори на листата постојат во C++; Тртата колона ги покажува опраторите кои постојат и во C. Трба да се напомене дека C не поддржува преоптоварување на операторот.
Следниве оператори се почетни точки во двата јазици (кога нема преоптоварување на операторот) &&, ||, ?:, и , ( опраторот запирка). C++ ги содржи и операторите за претворање const_cast, static_cast, dynamic_cast, и reinterpret_cast кои ги нема во табелата поради концизност. Форматирањето на овие оператори значи дека тие немаат поголема важност во приоритетното ниво.
Оние оператори кои се во C , со исклучок на запирка и стрелка операторите, се и во Java, Perl, C#, и PHP со истиот приоритет, асоцијативност и семантика со еден исклучок: асоцијативноста на троенторниот опаератор во PHP е од лево кон десно.
Табела Аритметички оператори Име на операторотСинтаксаПреоптоварувањеВо CПример единичен + +a да да ? Собирање a + b да да Type1 operator+(const Type1& a, const Type2& b); Претставка за растање ++a да да Type1& operator++ (); Наставка за растење a++ да да Type1 operator++ (int); // the int argument is just here to give a type signature which differ from the prefix increment Задача на собирање a += b да да a = a + b Единечен -(негација) -a да да ? Одземање (разлика) a - b да да ? Префикc за намалување --a да да ? Наставка за намалување a-- да да ? Задача со одземање a -= b да да ? Множење(производ) a * b да да ? Задача со множење a *= b да да ? Делење (количник) a / b да да ? Задача со делење a /= b да да ? Модули a % b да да ? Задача со мудули a %= b да да ? Оператори за споредување Име на операторот СинтаксаПреоптоварувањеВо CПримерПомало a < b да да ? Помало или еднакво a <= b да да ? Поголемо a > b да да ? Поголемо или еднакво a >= b да да ? Нееднакво a != b да да ? Еднакво на a == b да да ? Логички оператори Име на операторот СинтаксаПреоптоварувањеВо CПример Логичка негација !a да да ? Логичко И a && b да да ? Логички ИЛИ a || b да да ? Битови оператори Име на операторотСинтаксаПреоптоварувањеВо CПример Битово лево поместување a << b да да ? Задача со битово лево поместување a <<= b да да ? Битово десно поместување a >> b да да ? Задача со битово десно поместување a >>= b да да ? Битово едно дополнување ~a да да ? Битово И a & b да да ? Задача со битово И a &= b да да ? Битово ИЛИ a | b да да ? Задача со битово ИЛИ a |= b да да ? Битово XOR a ^ b да да ? Задача со битов XOR a ^= b да да ? Други оператори Име на операторотСинтаксаПреоптоварувањеВо CПример Основна задача a = b да да Type1& operator= (const Type1& b); Повикување на функција a() да да ? Низа со индекс a[b] да да ? Indirection *a да да ? Мемориска адреса на знакот &a да да ? Член со покажувач a->b да да ? Член a.b не да ? Врска помеѓу покажувач и член a->*b да не ? Врска меѓу покажувачот и референтниот член a.*b не не ? Доделува (type) a да да ? Запирка a , b да да ? Троен услов a ? b : c не да ? Просторна резолуција a::b не не ? Покажувач на член a::*b не не ? Големина на sizeof asizeof(type) не да ? Индитефукување на тип на променлива typeid(a)typeid(type) не не ? Доделување на нов тип на променлива new type да не ? Доделување на нов тип на низа new type[n] да не ? Бришење на типот на променлива delete a да не ? Бришење на типот на низа delete[] a да не ?
Приоритет на операторите
Во продолжение има табела која ги содржи приоритетите и асоцијативноста на сите оператори во C++ и C програмските јазици (кога операторите исто така постојат во Java, Perl, PHP и многу други понови јазици приоритет е ист како дадениот). Операторите се наведени според опаѓањето на приоритетот. Опаѓањето се однесува на приоритетот на вреднувањето. Имајќи го предвид компјутерскиот израз, оператор кој е подреден во некоја низа ќе биде вреднуван пред било кој оператор кој е подреден во подалечна низа под него. Операторите кои се во иста ќелија ( може неколку низи од оператори да бидат подредени во ќелија ) се вреднувани со исто ниво, во дадена насока. Приорeтните оператори не се зафатени со преоптоварување. Синтаксата на изразите во C и C++ е прецизирана _наведена_ од граматика која не зависи од контекстот.
Оператор Опис Асоцијативност :: Просторна резолуција (Само во C++) Од лево кон десно ++ -- зголемување и намалување на наставка () Повикување на функција [] Низа со . Селекција на елементи преку референца -> Селекција на елементи преку покажувач typeid() Run-time type информација (Само во C++) const_cast Type cast (Само во C++) dynamic_cast Type cast (Само во C++) reinterpret_cast Type cast (Само во C++) static_cast Type cast (Само во C++) ++ -- Зголемување и намалување на претставката Од лево кон десно + - Единечен плус и минус ! ~ Логичко НЕ и битово НЕ (type) Type cast * Indirection (dereference) & Адреса sizeof Големина на new new[] Распределба на динамичка меморија (Само во C++) delete delete[] Дераспределба на динамичката меморија(Само во C++) .* ->* Покажувач на член ( Само во C++) Од лево кон десно * / % Множење, делење и модули (остаток) + - Собирање и одземање << >> Битово лево поместување и десно поместување < <= Функционално „Помало“ и „Помало или еднкаво“ > >= Функционално „Поголемо“ и „Поголемо или еднакво“ == != Функционално „Еднакво“ и „Нееднакво“ & Битово И ^ Битово XOR (исклучиво или) | Битово ИЛИ () && Логичко ИЛИ || Логичко И c ? t : f Троентроен conditional (see ?:)Од десно кон лево (Не е достапен за throw) = Директна задача += -= Задача со збир и разлика *= /= %= Задача со производ, количник и остаток <<= >>= Задача со битово лево поместување и десно поместување &= ^= |= Задача со битово И, XOR, и ИЛИ throw Throw operator (exceptions throwing,Само во Ц++) , Запирка Од лево кон десно
Синоми на операторите во C++
C++ дефинира клучни зборови кои заменуваат низа симболи кои функционираат како оператори: и (&&), адреса (&), и_еднакво (&=), или (||), bitor (|), или_еднакво (|=), xor (^), xor_еднакво (^=), не (!), нееднакво(!=), compl (~). Овие се расчленувани исто како и нивните симболични еквиваленти и можат да се користат на местото од симболот кој го заменуваат. Интерпукцијата е заменета, а не операторите. На пример адреса може да ги замени двата битови оператора И и мемориска адреса на операторот.
Сите оператори за споредување(Во табелата погоре) враќаат bool(точно-неточно). bool a; int b = 1; int c = 2; a = b == c; Ова ќе работи бидејќи == враќа boolean, и никогаш не бара да биде внатре во условна зависносложена реченица или нешто слично. a=b==c; е исто кратенка за: bool a; int b = <Some Number Here>; int c = <Some Number Here>; if(b == c) a = true; else a = false;
Дополнителни врски Basic types & Operators Prefix vs. postfix operators in C and C++
Категорија:Програмски јазици Категорија:C++