زبان برنامه نویسی سی/علائم و عملگرهای دیگر و اولویتها: تفاوت میان نسخهها
محتوای حذفشده محتوای افزودهشده
جزبدون خلاصۀ ویرایش |
بدون خلاصۀ ویرایش |
||
خط ۶۱:
<br><br><br>
: '''''دقت کنید : در تمام عملگرهایی که چند عملوند دارند ، عملوندها باید یک نوع داده داشته باشند ( البته برخی از آنها علاوه بر این قانون ، تنها عملوندهای صحیح و یا مثبت و یا صحیح مثبت را میپذیرند ) ؛ در غیر این صورت یا کامپایلر آنها را به همدیگر تبدیل میکند ( رجوع کنید به تبدیل و جایگزینی دادهها ) و یا اخطار میدهد ؛ البته به غیر از استثناهایی که در هر موضوع و برای هر عملگر استثناء نوشتیم'''''
اگر قسمت ابتدایی موضوع را به یاد داشته باشید ، میدانید که عملگرهای زیادی در C وجود دارند که در ابتدای فصل هم بدان اشاره نمودیم که این عملگرها در زبان C به عنوان عملگر بیان نمیشوند اما علائم زیادی نظیر " و # وجود دارند که در واقع عملگر هستند . اما فراموش نکنید که شما نمیتوانید از آنها در عبارتها استفاده کنید و فقط به شکل و نحوه خاص خودشان مورد استفاده هستند که با مطالعه کامل کتاب نقش هر کدام را خواهید فهمید و اینکه کجا مجاز هستید تا از آنها استفاده کنید
==خوانده شدن عبارتها==
عبارتها توسط کامپایلر با توجه به الویتها و البته از چپ به راست خوانده میشوند اما برای اینکه الویتها را و از چپ به راست خوانده شدن را تغییر دهیم و کاری کنیم تا کامپایلر آنگونه که ما میخواهیم ، عبارت را بخواند باید از پرانتزها استفاده کنیم . برای این منظور زیرعبارتها را آنگونه که میخواهیم لحاظ شوند داخل حفت پرانتزهای باز و بسته میگذاریم که این عمل میتواند تو در تو نیز انجام شود . مثال :
{{چپچین}}
<code>
((( 3 * 7 ) * (2 + 5))/8) + 6 * 2
</code>
{{پایان چپچین}}
همان طور که از علم ریاضی به یاد دارید ، عمل ضرب و تقسیم بر عمل جمع و تفریق ، اولویت دارند و اگر از هم جدا نشده باشند هر کدام که در سمت چپتر قرار داشته باشد زودتر مورد ارزیابی قرار میگیرد . در مثال بالا با کمک پرانتزها کل عبارت را به چند زیر عبارت تقسیم کردهایم که اگر عبارت مقدار ذخیره شده در یک float باشد ، مقدار بازگردانده شده 30.375 خواهد بود چرا که ابتدا 7 * 3 و 5 + 2 مورد ارزیابی قرار میگیرند که حاصل اول 21 و حاصل دومی 7 است که در هم ضرب میشوند و عدد 147 به دست میآید که سپس تقسیم بر 8 میشود که 18.375 به دست خواهد آمد که جمع میشود با 6 * 2 ( که میشود 12 ) و در نهایت عدد 30.375 به دست میآید . اما اگر از پرانتزها استفاده نمیکردیم پاسخ ما 54.625 میشد
در ادامه همین موضوع و پس از عملگرهای مقداردهی به اولویت عملگرها میپردازیم
|