آموزش c++ عملگرها

عملگر نمادی است که به کامپایلر دستور می دهد تا عملیات ریاضی را انجام دهد. در زبان برنامه نویسی C++ مجموعه کاملی از این عملگرها وجود دارد که شامل موارد زیر است:

  • عملگر های ریاضی
  • عملگر های رابطه ای
  • عملگر های منطقی
  • عملگر های بیتی
  • عملگر های انتساب
  • عملگر های متفرقه

در این آموزش عملگرهای بالا را به ترتیب توضیح خواهیم داد.

عملگر های ریاضی

عملگر های ریاضی که در C++ پشتیبانی می شوند در جدول زیر قرار گرفته است:
فرض کنید که متغیر A  حاوی مقدار ۱۰ و متغیر B حاوی مقدار 20 باشد:

عملگر توضیحات مثال
+ برای جمع دو مقدار مورد استفاده قرار می گیرد A +B = 30
- مقدار عملوند دوم را از مقدار عملوند اول کم می کند A –B = -10
* مقدار عملوند دوم را از مقدار عملوند اول کم می کند A *B = 200
/ دو عملوند را در هم ضرب می کند B / A = 2
% باقیمانده تقسیم مقدار عملوند دوم بر مقدار عملوند اول را برمی گرداند B % A = 0
++  به مقدار قبلی عملوند یک واحد اضافه می کن A++ = 11
--  از مقدار قبلی عملوند یک واحد کم می کند A-- = 9

عملگر های رابطه ای

عملگر های رابطه ای زیر در C++ پشتیبانی می شوند:
فرض کنید متغیر A دارای مقدار 10 و متغیر B دارای مقدار 20 باشد:

عملگر توضیحات مثال
== بررسی می کند که مقدار دو عملوند با هم برابر است یا نه و اگر برابر باشد شرط درست است (A == B) is not true
!= در صورت برابر نبودن مقدار دو عملوند شرط درست است (A != B) is true.
> در صورتی که مقدار عملوند A (سمت چپ) از  B(سمت راست)  بزرگتر باشد شرط درست است (A > B) is not true.
<  اگر مقدار عملوند A (سمت چپ) از  B (سمت راست) کمتر باشد شرط درست است (A < B) is true.
>= در صورتی که مقدار عملوند A (سمت چپ) بزرگتر یا برابر مقدار عملوند  B(سمت راست) باشد شرط درست است (A >= B) is not true.
<= در صورتی که مقدار عملوند A (سمت چپ) کمتر یا برابر مقدار عملوند  B(سمت راست) باشد شرط درست است (A <= B) is true.

عملگر های منطقی

عملگرهای منطقی زیر در C++ پشتیبانی می شود.
فرض کنید متغیر A دارای مقدار 10 و متغیر B دارای مقدار 20 باشد:

عملگر توضیحات مثال
&& عملگر AND (و منطقی)
در صورتی که هر دو عملوند true باشند شرط true است.
(A && B) is false.
|| عملگر OR (یا منطقی)
در صورتی که فقط یکی از دو عملوند ها true باشد شرط true است.
(A || B) is true.
! برای تغییر وضعیت منطعی عملوند و برعکس کردن آن استفاده می شود. برای مثال اگر شرط برابر true باشد آن را false می کند. !(A && B) is true.

عملگرهای بیتی

عملگرهای بیتی بر روی بیت ها کار می کنند. جداول حقیقی برای &، |، و ^ به شرح زیر است

p q p & q p | q p ^ q
0 0 0 0 0
0 1 0 1 1
1 1 1 1 0
1 0 0 1 1

فرض کنید اگر A = 60 و B = 13 باشد، در حال حاضر فرمت باینری آنها به شرح زیر خواهد بود:

A = 0011 1100
B = 0000 1101
-----------------
A&B = 0000 1100
A|B = 0011 1101
A^B = 0011 0001
~A  = 1100 0011

عملگر های بیتی پشتیبانی شده در C++ در جدول زیر شرح داده شده است:
فرض کنید متغیر A دارای مقدار ۶۰ و متغیر B دارای مقدار ۱۳ باشد:

عملگر توضیحات مثال
& عملگر باینری AND که اگر هر دو عملوند true باشند یک بیت را در نتیجه کپی می کند. (A & B) که برابر با 12 است و می شود 00001100
| عملگر باینری OR که اگر یکی از عملوند ها true باشد یک بیت را در نتیجه کپی می کند. (A | B) که برابر با 61 است و می شود 00111101
^ عملگر باینری XOR که اگر هر دو عملوند true یا false نباشند یک بیت در نتیجه کپی می کند. (A ^ B) will give 49 which is 0011 0001
~ به عملگر یکانی نقیض معروف است و کار آن برعکس کردن مقدار است. هر جا 1 بود 0 می کند و بلعکس.  ( A ^ B) که برابر است با 49 و می شود 00110001
<< عملگر باینری شیفت چپ  A << 2 که برابر است با 240 و می شود 11110000
>> عملگر باینری شیفت راست

A >> 2 که برابر است با 15 و می شود 0000111

عملگر های انتساب

عملگر های انتسابی پشتیبانی شده در C++:

عملگر توضیحات مثال
= عملگر انتساب ساده که مقدار عملوند راست را در عمولند سمت چپ قرار می دهد  A + B = C که مقدار A + B را در C قرار می دهد
+= مقدار عملوند سمت راست را با عمولمند سمت چپ جمه می کند و در ر عملوند سمت چپ قرار می دهد.  C += A که برابر است با
 C = C + A
-= مقدار عملوند سمت راست را از عملوند سمت چپ کم کرده و در عملوند سمت چپ قرار می دهد. C += A که برابر است با 
C = C - A
*= مقدار عمولند سمت راست را در عملوند سمت چپ ضرب کرده و در عملوند سمت چپ قرار می دهد. C *= A که برابر است با 
C = C * A
/= مقدار عملوند سمت راست را تقسیم بر مقدار عملوند سمت چپ کرده و نتیجه آن را در عملوند سمت چپ قرار می دهد C /= A که برابر است با
 C = C / A
%=  نتیجه باقیمانده تقسیم مقدار دو عملوند را در عملوند سمت چپ قرار می دهد C %= A که برابر است با
C = C % A
<<= عملگر انتساب شیفت به چپ C <<= 2 که برابر است با
 C = C << 2
>>= عملگر انتساب شیفت به راست  C >>= 2 که برابر است با 
C = C >> 2
&= عملگر بیتی AND     C &= 2  که برابر است با
 C = C & 2
^= عملگر انتساب exclusive OR بیتی C ^= 2 که برابر است با C = C ^ 2
|= عملگر انتساب inclusive OR بیتی C |= 2 که برابر است با C = C | 2


عملگر های متفرقه

عملگر متفرقه  قابل استفاده در C++:

ردیف عملگرها و توضیحات
1

sizeof

اندازه متغیر را بر می گرداند

2

Condition ? X : Y

اگر شرط درست باشد مقدار متغیر x و اگر غلط باشد مقدار متغیر y را بر می گرداند

3

,

برای انجام دنباله ای از عملیات مورد استفاده قرار می گیرد و مقداری که تولید شده در آخرین عملیاتی که کاما آن را جدا کرده است را بر می گرداند

4

. (dot) and -> (arrow)

برای دسترسی به اعضای کلاس، union ها و struct ها مورد استفاده قرار می گیرد.

5

Cast

برای تبدیل نوع انواع داده ها مورد استفاده قرار می گیرد.

6

&

این عملگر اشاره گر آدرس یک متغیر را بر میگرداند.

7

*

این عملگر اساره گر به یک متغیر اشاره می کند. مثلا *var; به متغیر var اشاره می کند

اولویت عملگرها در C++

اولویت یک عملگر ترتیب اجرای آن را در یک عبارت تعیین می‌کند که بر نتیجه عبارت تاثیر گذار است. برخی اولویت بالاتری نسبت به سایر آن ها دارند. برای مثال عملگر ضرب دارای اولویت بالاتری نسبت به عملگر به علاوه است.
برای مثال در عبارت x = 7 + 3 * 2، مقدار x برابر با ۱۳ است و مقدار آن ۲۰ نمی باشد زیرا * اولویت بالاتری نسبت به + دارد. بنابراین ابتدا 2*3 انجام می شود و سپس مقدار آن با 7 جمع می شود. در جدول زیر اولویت عملگرها به ترتیب بیشترین اولویت قرار گرفته است. آن هایی که اولویت کمتری دارند در انتهای جدول قرار داده شده‌اند. در یک عبارت ابتدا اجرای عملگری انجام می‌شود که اولویت بالاتری دارند.

دسته بندی عملگرها ترتیب
پسوند  () [] -> . ++ - -   چپ به راست
یگانی  + - ! ~ ++ - - (type)* & sizeof  راست به چپ
ضربی   * / %  چپ به راست
افزودنی   + -  چپ به راست
شیفت   << >>  چپ به راست
رابطه ای   < <= > >=  چپ به راست
برابری یا تساوی   == !=  چپ به راست
بیتی AND  چپ به راست
بیتی XOR  چپ به راست
بیتی OR  چپ به راست
منطقیAND  &&  چپ به راست
منطقی OR  ||  چپ به راست
شرطی  ?:  راست به چپ
انتسابی  = += -= *= /= %=>>= <<= &= ^= |=  راست به چپ
کاما چپ به راست
برای درج نظر و یا طرح سوالات خود لطفا در سایت ثبت نام کنید و یا وارد سایت شوید

نظرات کاربران

برای این مطلب تاکنون نظری ارسال نشده است. شما اولین نفر باشید