زبان برنامه نویسی سی/علائم و عملگرهای دیگر و اولویت‌ها: تفاوت میان نسخه‌ها

محتوای حذف‌شده محتوای افزوده‌شده
بدون خلاصۀ ویرایش
جزبدون خلاصۀ ویرایش
خط ۸۰:
==عملگرهای مقداردهی==
 
Assignment Operators یا عملگرهای گماشتن و یا عملگرهای مقداردهی ، عملگرهایی هستند که باعث می‌شوند تا ما بتوانیم در یک شناسه ، مقدار و موجودی‌ای را قرار بدهیم و یا با کمک آنها به مقدار و موجودی آن دسترسی پیدا کرده و آن را تغییر دهیم . همگی آنها در خود علامت مساوی « = » را دارند اما علاوه بر عملگر مقداردهی ساده که همان « = » می‌باشد ، عملگرهای دیگری وجود دارند که ترکیبی هستند . مثال عملگر مقداردهی ساده را در فصل داده‌ها بارها دیده‌اید ؛ مثل :

;int a = 6 یا ;float y = 53.84795
 
در تمامی مقداردهی‌ها عملوند سمت چپ باید یک شناسه باشد ولی عملوند سمت راست می‌تواند یک مقدار عددی یا حرفی ، شناسه‌ای که مقدار دارد و یا یک ماکرو باشد . بدین ترتیب مقدار و موجودی عملوند سمت راست در عملوند سمت چپ که یک شناسه است قرار می‌گیرد . اما علاوه بر عملوند ساده ، عملوندهای مقداردهی ترکیبی نیز وجود دارند که شامل :
 
{{چپ‌چین}}
+=<br>
-=<br><br>
-=
*=<br>
/=<br>
%=<br><br>
%=
&=<br>
^=<br>
|=<br><br>
|=
<<=<br>
>>=<br>
{{پایان چپ‌چین}}
 
می‌شود . عملگرهای مقداردهی ترکیبی با عملگرهای منطقی و بیتی و یا حسابی به همراه عملگر مقداردهی ساده بربدین رویگونه عمل می‌کنند که عملوند سمت چپراست ،را بر عملروی نوشتهعملوند شدهسمت راچپ بااعمال عملوندمی‌کنند سمت( راستعمل عملگر را انجام می‌دهند ) و نتیجه را در عملوند سمت چپ ، ذخیره می‌کنند . مثلاً ;a += 5 هر مقداری که a داشته باشد را با 5 جمع می‌کند و دوباره در a ذخیره می‌کند . اگر a در مثال بالا مقدار 4 می‌داشت بعد از حکم بالا مقدار 9 را می‌یافت . یا مثلاً در مورد عملگر =- ابتدا عملوند سمت راست از عملوند سمت چپ کم می‌شود و سپس در عملوند سمت چپ ذخیره می‌شود ؛ در مورد عملگرهای دیگر نیز عملیات به همین شکل انجام می‌شود ؛ یعنی =* عملوند سمت چپ را در عملوند سمت چپ را در عملوند سمت راست ، ضرب می‌کند و مقدار حاصل را در عملوند سمت چپ ذخیره می‌کند و =/ عملوند سمت راست را بر عملوند سمت چپ ، تقسیم می‌کند و مقدار حاصل را در عملوند سمت چپ ذخیره می‌کند . همچنین =% عملوند سمت چپ را بر عملوند سمت راست ، تقسیم می‌کند و باقیمانده را در عملوند سمت چپ ذخیره می‌کند ، =& عملوند سمت راست را با عمل و بیتی بر روی عملوند سمت چپ اعمال می‌کند و مقدار حاصل را در عملوند سمت چپ ذخیره می‌کند ؛ به همین شکل =^ و =| به ترتیب عملیات زور بیتی و یا بیتی را انجام می‌شودمی‌دهند . موارد بالا با توجه به اولویتشان از یکدیگر جدا شده‌اند که آخرین اولویت در عملگرهای مقدار دهی متعلق به =>> و =<< یعنی به ترتیب مقدار دهی انتقال به چپ بیتی و مقدار دهی انتقال به راست بیتی می‌باشد که اولی عملیات انتقال به چپ را به اندازه عملوند سمت راست بر روی عملوند سمت چپ انجام می‌دهد و حاصل را عملوند سمت چپ ذخیره می‌کند و دومی عملیات انتقال به راست را به اندازه عملوند سمت راست بر روی عملوند سمت چپ انجام می‌دهد و حاصل را در عملوند سمت چپ ذخیره می‌کند
 
'''دقت کنید :''' عملگرهای مقداردهی ترکیبی فقط بر روی اعداد عمل می‌کنند و هر کدام ، قوانین عملگر ترکیب شده را در مورد عملوندهای خود انتظار دارند و اگر جز این باشد یا کامپایلر خطا می‌گیرد یا برنامه شما دارای باگ ( Bug ) خواهد بود