عملگرها

از ویکی جامع پردیس دانشگاهی دانشگاه قم
پرش به: ناوبری، جستجو
برنامه نویسی پیشرفته
مقاله بعدی:درس:برنامه نویسی پیشرفته
مقاله قبلی:متغیر

عملگرها

عملگرها به چند دسته تقسیم می شوند:

1- عملگرهای محاسباتی + و - و / و * و %(mod)

++ (پلاس پلاس): یک واحد به متغیر اضافه می کند. ++i یعنی i=i+1
-- (مایناس مایناس): یک واحد از متغیر کم می کند. --i یعنی i=i-1

int i = 10;
i++;
/عدد 11 می شود/

نکته
اگر عملگر ++ و یا -- در سمت راست عملوند قرار بگیرد، مقدار فعلی عملوند مورد استفاده قرار گرفته و سپس عملگرها بر روی عملوند عمل می کنند ولی اگر در سمت چپ عملوند قرار گیرند، ابتدا بر روی عملوند عمل می کنند و سپس مقدار آنها مورد استفاده قرار می گیرد.


مثال:

در این مثال ابتدا مقدار i به درون c ریخته شده و سپس به i یک واحد اضافه می شود.

i=10;
c = i++;
مقدار فعلی مورد استفاده قرار می گیرد.
c = 10;
سپس یک واحد به آن اضافه می شود.
i = 11;

مثال:

در این مثال ابتدا مقدار i یک واحد اضافه می شود و سپس به درون c ریخته می شود.

c = ++i;
ابتدا افزاریش می یابد.
i = 11;
سپس مورد استفاده قرار می گیرد.
c = 11;

اگر ++ در سمت چپ قرار بگیرد در همان لحظه به مقدار آن اضافه می شود ولی اگر در سمت راست باشد از مقادیر قبلی استفاده شده و در خط بعد یک واحد اضافه می شود.

int i=0, j=7, c=0;
c= i++, ++j;
c= 18
j = 8
i = 11

2- عملگرهای رابطه ای:

=< بزرگتر مساوی => کوچکتر مساوی > کوچکتر < بزرگتر != مخالف == مساوی یا برابر


نکته
c=10 یعنی مقدار 10 را در c قرار می دهد (انتساب)
c==10 یعنی اگر مقدار c برابر 10 باشد آنگاه ... (شرط)


3- عملگرهای منطقی:

And ===> && و
Or ===> || یا
Not ===> ! نقیض

مثال:

if (a==10 || b<15) یا if (a==10 && b<15)
int a=0 if (!a)

4- عملگرهای محاسباتی رابطه ای:

=%    =/   =*   =-   =+

a -= c;  یعنی  a = a-c;
a += 5;  یعنی  a = a+5;
a *= 6;  یعنی  a = a*6;
a /= b;  یعنی  a = a/b;
a %= k;  یعنی  a = a%k;

5- عملگرهای بیتی جهت دستکاری بیت ها:

&   And  بیتی    c = a & b;
|   or  بیتی   c = a|b;
~   not  بیتی   c =~a;
^   xor  بیتی    c = a^b;
>>   شیفت به چپ    c=a<<2;
<<    شیفت به راست    c = a<<1;


نکته
در هر بار شیفت به چپ عدد شیفت داده شده در 2 ضرب می شود.


در هر بار شیفت به راست عدد شیفت داده شده بر 2 تقسیم می شود.


6- عملگر ؟ برای تست یک شرط، عباراتی را به یک متغیر نسبت می دهد. نحوه استفاده:

الف) انتقال به یک متغیر:

متغیر = exp? exp2:exp3;

ب) اجرای دستورات:

exp?مجموعه دستورات2: مجموعه دستورات1;

اگر حاصل شرط exp1 درست (true) باشد، exp2 یا مجموعه دستورات 1 اتفاق می افتد در غیر اینصورت exp3 یا مجموعه دستورات 2 رخ خواهد داد.

int a=5,b=10,c=0;
c=(a<b)?8:6;   حالت انتقال به یک متغیر
c = 8   خروجی
(a<b)?a++;b--;a--;b++;   حالت بدون انتقال

عملگر ؟ معادل دستورات زیر است:

if exp1=true then
متغیر = exp2;
esle exp1=false
متغیر = exp3;

7- عملگر sizeof:

نکته
این عملگر، عملگر زمان ترجمه می باشد.(compile)


این عملگر طول یک نوع را به ما می دهد.


متغیر = sizeof(data type);
A=sizeof(long);
A=4;

خروجی sizeof همیشه int است.

متغیر = sizeof(متغیر);
float f;
A = sizeof(f);
A = 4;

تقدم عملگرها:

بالاترین تقدم
()
 ! ~ ++ --
* / %
+ -
>> <<
< =< > =>
== =!
&
^
\
&&
or
 ?
= =+ =- =* =/ =%