زبان برنامه نویسی سی/علائم و عملگرهای دیگر و اولویتها: تفاوت میان نسخهها
محتوای حذفشده محتوای افزودهشده
جزبدون خلاصۀ ویرایش |
جزبدون خلاصۀ ویرایش |
||
خط ۵:
==عملگرهای جانبی==
عملگر '''کروشه''' : عملگرهای کروشه به صورت جفت باز و بسته در مقابل یک شناسه باعث ایجاد یک آرایه به تعداد عددی که داخل جفت کروشههای باز و بسته نوشته شده است میشود . مثلاً
;int a[6] که باعث ایجاد یک آرایه ۶ عنصری میشود و عنصرها از طریق شناسه آن قابل دسترس هستند ( رجوع کنید به موضوع آرایه ) <br><br>
عملگر '''پرانتز و آکولاد''' : عملگر پرانتز به صورت جفت باز و بسته در مقابل یک شناسه باعث میشود تا شناسه به عنوان تابع تعریف شود که سپس باید بعد از پرانتز بسته یک جفت آکولاد به صورت باز و بسته نوشته شوند که بدنه تابع را تشکیل میدهد . ضمناً میتوان تابع را اعلان نمود ( prototype ) سپس تعریف کرد و هر جا لازم شد احضار و یا همان فراخوانی نمود که باز هم با کمک عملگر پرانتز امکان پذیر است ( رجوع کنید به فصل تابع )
<br><br>
عملگر '''سمی کالن''' : عملگر ; که نام آن سِمی کالُن ( semi colon ) است پس از هر حکم باعث به اجرا گذاشته شدن آن توسط کامپایلر میشود . هر حکم میتواند اعلان و یا تعریف متغیرهای پایه ، ترکیبی و یا تابع باشد ( که تابع ممکن است یک تابع کتابخانهای باشد ) مثلاً ;float g
<br><br>
عملگر '''نقطه و اشارهگر به عضو''' : عملگر « . » یا همان دات و یا نقطه اگر پس از شناسه نمونه ی یک ساختمان و یا اجتماع بیاید که عملگر نقطه ، پیش از نام یکی از اعضای آن ساختمان یا اجتماع است ، دسترسی به آن شی ( عضو ساختمان یا اجتماع ) را فراهم میکند . همچنین عملگر <- باعث میشود تا با نوشتن نام یک اشارهگر به ساختمان و یا اجتماع پیش از عملگر و نوشتن عضوی از آن ساختمان یا اجتماع ، پس از عملگر ، اشارهگر ما به عضو اشاره شده دسترسی پیدا کند . دقت کنید که در نوشتن هیچ کدام از نام نمونه و یا نام اشارهگر و همچنین عضو ساختمان یا اجتماع نباید فاصلهای بگذارید ( رجوع کنید به موضوع ساختمان و اجتماع و اشارهگر )
<br><br>
عملگر '''اشاره و آدرس دهی''' : عملگر * که نام آن استریسک یا همان ستاره است اگر پس از کلیدواژههای سازنده دادهها بیاید ، داده را به عنوان اشارهگر تعریف میکند . سپس برای مقدار دهی آن باید از عملگر آدرس دهی یعنی & که نام امپرسند است ، استفاده نمود تا با قرار دادن شناسه یک داده دیگر در مقابل آن ، اشارهگر به آن داده دیگر اشاره نماید . سپس برای دسترسی به آن داده ، دوباره باید از عملگر استریسک اما این بار بدون نوشتن کلیدواژههای
<br><br>
عملگر '''پرانتز برای کست کردن''' : اگر عملگر پرانتز را به صورت یک جفت پرانتز باز و بسته که تعیین کننده یک نوع داده پیش از آن قرار داشته باشد را بنویسم و داخل پرانتزها ، شناسه یک داده را بنویسیم ، کامپایلر با نوع داده داخل پرانتز به عنوان نوع داده پیش از پرانتز باز ، رفتار خواهد نمود ( رجوع کنید به موضوع تبدیل و جایگزینی دادهها )
<br><br>
عملگرهای '''شرطی''' : عملگر ? و : به عنوان عملگرهای شرطی در زبان C عمل میکنند مثلاً a ? b : c که اگر a درست true یا غیر 0 باشد b به اجرا در میآید و اگر a غلط flase یا 0 باشد ، c به اجرا در میآید . مثل a=5 ? b = 2 : b = 4 که در اینجا اگر مقدار a عدد ۵ باشد ، b مقدار ۲ خواهد گرفت و در غیر این صورت b مقدار ۴ خواهد گرفت . به مثال دیگری دقت کنید :
<br>
{{چپچین}}
سطر ۳۱ ⟵ ۳۳:
در عملگرهای شرطی ، اگر عملوندها از یک نوع داده باشند ، خروجیای که عملگرهای شرطی باز میگردانند ، از همان نوع عملوندها است و شما نمیتوانید از انواع مختلفی استفاده کنید مگر اینکه : اگر هر یک از عملوندها ، اشارهگری به یک داده پوچ باشد ، نتیجه نهایی که عملگرهای شرطی باز میگردانند اشارهگر به پوچ خواهد بود . اگر عملوندها یکی اشارهگر باشد و دیگری اشارهگر تهی باشد ، نتیجه نهایی که باز گردانده میشود از نوع اشارهگری که غیر تهی است خواهد بود . اگر عملوندها نوع داده پوچ دارند ، خروجی از نوع پوچ خواهد بود ؛ به غیر از این ، تبدیلهای دیگر انجام نمیشوند و یا با خطای دیباگر مواجه خواهید و یا برنامه شما معیوب خواهد شد
<br><br>
عملگر '''ویرگول''' : عملگر « , » که نام آن کاما است و در پارسی ، معنی ویرگول را میدهد دو نوع عمل را انجام میدهد یکی نقش جدا کننده شناسهها را دارد
<br><br>▼
{{چپچین}}
<code>
;int a = 2 , b = 5 , c = 8
</code>
{{پایان چپچین}}
در لیست پارامترهای یک تابع نیز برای تعیین چند پارامتر ، باید نام پارامترها را که شناسه هستند با عملگر کاما از یکدیگر جدا کنید ؛ همچنین در هنگام احضار تابع نیز برای پاس دادن آرگومانها ، باید برای جدا کردن آنها از عملگر کاما استفاده کنید ( رجوع کنید به فصل تابع ) ؛ عملکرد دیگر عملگر کاما یعنی « , » در نادیده گرفتن عملوند اولی است که به این کاربرد کاما به ندرت به کار میآید . در جایی که آرگومانی را میخواهید به یک تابع پاس بدهید یا مقداری را در یک متغیر ذخیره کنید ، اگر از عملگر کاما استفاده کنید ، عملوند اول نادیده گرفته میشود و نتیجه ارزیابی ، مقدار و نوع داده عملوند دوم خواهد بود . همچنین اگر بیش از یک بار از آن استفاده کنید ، تمام عملوندهای ابتدایی نادیده گرفته میشوند و در نهایت عملوند آخری احتساب میشود . مثلاً :
{{چپچین}}
<source lang="C#">
#include<stdio.h>
int main()
{
int x = 10;
int y = 15;
printf("%d", (x, y));
getchar();
return 0;
}
</source>
{{پایان چپچین}}
در مثال بالا مقداری که printf چاپ خواهد نمود مقدار y است و x نادیده گرفته میشود . این کاربرد عملگر کاما به ندرت به کار میآید
▲<br><br><br>
: '''''دقت کنید : در تمام عملگرهایی که چند عملوند دارند ، عملوندها باید یک نوع داده داشته باشند ( البته برخی از آنها علاوه بر این قانون ، تنها عملوندهای صحیح و یا مثبت و یا صحیح مثبت را میپذیرند ) ؛ در غیر این صورت یا کامپایلر آنها را به همدیگر تبدیل میکند ( رجوع کنید به تبدیل و جایگزینی دادهها ) و یا اخطار میدهد ؛ البته به غیر از استثناهایی که در هر موضوع و برای هر عملگر استثناء نوشتیم'''''
|