با سلام خدمت تمامی دوستان عزیز سایت پی وی لرن .و کاربرانی که دوره کامل آموزش زبان C را دنبال می کنند. در این مجموعه آموزشها قصد داریم آموزش برنامه نویسی به زبان C رو تقدیم حضورتون کنیم تاشما هم بتونید به راحتی برنامه بنویسید.به دلیل اهمیت عملگرها و اولویت عملگرها در c در این جلسه از آموزشهای زبان سی به عملگرها در c ، عملگرهای تخصیص یا انتصاب مرکب و کلاسها از جمله کلاس ذخیره استاتیک static در C و اولویت عملگرها در c می پردازیم .
اپراتور/عملگر | توضیحات | مثال |
+ | دو متغیر را جمع می کند | A + B = 30 |
– | متغیر دوم را از اول کم می کند. | A − B = -10 |
* | هر دو را در هم ضرب می کند | A * B = 200 |
/ | تقسیم متغیرها | B / A = 2 |
% | برای محاسبه باقیمانده تقسیم به کار میرود | B % A = 0 |
++ | یک واحد به عملوندش اضافه می کند | A++ = 11 |
— | یک واحد از عملوندش کم می کند | A– = 9 |
اپراتور/عملگر | توضیحات | مثال |
== | مقادیر دو متغیر می تواند برابر باشد یا نباشد. اگر برابر باشد، این وضعیت درست است. | (A == B) is not true |
!= | مقادیر دو متغیر می تواند برابر باشد یا نباشد. اگر برابر نباشد، این وضعیت درست است. | (A != B) is true |
> | بررسی اینکه مقدار عملگر سمت چپ بیشتر از مقدار عملگر راست باشد یا نباشد،شود. اگر بله، این وضعیت درست است. | (A > B) is not true |
< | بررسی اینکه مقدار عملگر سمت چپ کمتر از مقدار عملگر راست باشد یا نباشد،اگر بله، این وضعیت درست است. | (A < B) is true |
>= | بررسی اینکه مقدار عملگر سمت چپ بیشتر از مقدار مقادیر راست یا برابر آن باشد. اگر بله، این وضعیت درست است. | (A >= B) is not true |
<= | چک کردن اینکه آیا مقدار عملگر چپ کمتر از ارزش عملگر راست یا برابر آن است یا خیر. اگر بله، این وضعیت درست می شود. | (A <= B) is true |
اپراتور/عملگر | توضیحات | مثال |
&& | و یا(and) اگر هر دو عملوند غیر صفر باشند، این شرایط درست می شود. | (A && B) is false |
|| | اگر هر کدام از دو عملگرها غیر صفر باشد، این شرط درست می شود. | (A || B) is true. |
! | عملگر نقیض (not) نامیده می شود.نتیجه عملگر ‘!’ وقتی درست است که عملوند آن دارای ارزش نادرستی باشد. | !(A && B) is true |
p ^ q | p | q | p & q | q | p |
۰ | ۰ | ۰ | ۰ | ۰ |
۱ | ۱ | ۰ | ۱ | ۰ |
۰ | ۱ | ۱ | ۱ | ۱ |
۱ | ۱ | ۰ | ۰ | ۱ |
فرض کنید 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’ دارای ارزش ۱۳ می باشد.
عملگرها در c | توضیحات | مثال |
& | عملگر Andباینری و نتیجه عملگر ‘&’ وقتی یک است که هردو بیت عملوندهایش یک باشند | ۱۲=(A & B) ۱۱۰۰ ۰۰۰۰ |
| | عملگر OR و باینری و نتیجه عملگر ‘|’ وقتی صفر است که هر دو بیت صفر باشند. | ۶۱=(A | B) ۱۱۰۱ ۰۰۱۱ |
^ | عملگر XOR باینری و نتیجه ‘^’ وقتی یک است که یکی از بیت ها صفر و دیگری یک باشد. | ۴۹=(A ^ B) ۰۰۰۱ ۰۰۱۱ |
~ | مکمل یک باینری | (~A ) = ~(60) ۰۱۱۱۱۰۱- |
<< | عملگرهای شیفت بر روی یک عملوند عمل میکنند و بیتها را به سمت چپ شیفت می دهد. | A << 2 = 240 ۰۰۰۰ ۱۱۱۱ |
>> | عملگرهای شیفت بر روی یک عملوند عمل میکنند و بیتها را به سمت راست شیفت می دهد. | A >> 2 = 15 ۱۱۱۱ ۰۰۰۰ |
جدول زیر لیست اپراتورهای تخصیص که توسط زبان C پشتیبانی می شوند را نشان می دهد.
اپراتور/عملگر | توضیحات | مثال |
---|---|---|
= | عملگر تخصیص .مقدار عملوند سمت راست را به عملوند سمت چپ تخصیص می دهد. | C = A + B مقدار 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 و ۲ است |
=^ | عملگر XORبیتی و تخصیص | C ^ = 2 مشابه C = C ^ 2 است |
=| | عملگر ORبیتی و تخصیص | C |= 2 مشابه است با C = C | 2 |
اپراتور/عملگر | توضیحات | مثال |
---|---|---|
sizeof() | مقدار یک متغیر را برمی گرداند. | sizeof (a)،جایی که یک عدد صحیح است، ۴ رابرمی گرداند. |
& | آدرس متغیر را برمی گرداند. | آدرس واقعی متغیر را برمی گرداند. |
* | اشاره گر به یک متغیر است. | *a; |
? : | بیان شرطی | اگر وضعیت درست باشد؟ مقدار X: در غیر این صورت مقدار Y |
برخی عملگرها علاوه بر اولویت در همگروهی های خود بر کلیه عملگرها نیز دارای اولویت هستند؛ برای مثال، اپراتور ضرب دارای تقدمی بالاتر از عملگر جمع دارد.بنابراین رعایت اولویت عملگرها در c مهم است.
به عنوان مثال، x = 7 + 3 * 2؛ در اینجا، به x عدد ۱۳ اختصاص داده شده است ، نه ۲۰ به این دلیل که عملگر * دارای اولویت بالاتری از + است، بنابراین برای اولین بار ۳ * ۲ ضرب می شود و سپس به ۷ اضافه می شود.
بنابراین،اپراتورهای با بالاترین اولویت در بالای جدول ظاهر می شوند و عملگرهایی که اولویت پایین تری دارند در پایین جدول ظاهر می شود. اولویت عملگرها در c :
دسته بندی | اپراتور /اپراتور | وابستگی |
---|---|---|
Postfix | – – ++ . < – [] () | چپ به راست |
Unary | sizeof * & (type) – – ++ ~ ! – + | چپ به راست |
Multiplicative | % / * | چپ به راست |
Additive | – + | چپ به راست |
Shift | << >> | چپ به راست |
Relational | =< <= > > | چپ به راست |
Equality | = ! == | چپ به راست |
Bitwise AND | & | چپ به راست |
Bitwise XOR | ^ | چپ به راست |
Bitwise OR | | | چپ به راست |
Logical AND | && | چپ به راست |
Logical OR | || | چپ به راست |
Conditional | 😕 | راست به چپ |
Assignment | =|= ^= &= >>=<<= %= /= *= -= += | راست به چپ |
Comma | , |
مددی جابری
زکات العلم نشره