عملگرهای انتساب
در زبان C علامت ’=’ به مفهوم مساوی نیست، بلکه عملگر جایگذاری یا عملگر انتساب است. این عملگر موجب میگردد که مقدار عملوند سمت راست آن در محل حافظهای که با عملوند سمت چپ مشخص شده است قرار گیرد. برای مثال دستور K = 123 ; مقدار ۱۲۳ را به متغیر k اختصاص میدهد؛ یعنی، آنچه در سمت چپ علامت قرار دارد، نام یک شناسه یا متغیر و آنچه در سمت راست آن قرار دارد، مقدار یا value متغیر مزبور است. پس دستور بالا به مفهوم k ” مساوی ۱۲۳ ” نیست بلکه یعنی “مقدار ۱۲۳ به k اختصاص داده شود”. پس باید به تمایز بین نام متغیر و مقدار متغیر توجه کرد.
حال دستور متعارف K = K+1 ; را درنظر بگیرید. از نظر ریاضی این دستور مفهوم نیست. اما از دیدگاه برنامهسازی، دستور مزبور دستور جایگذاری و بدین مفهوم است که متغیری را که نام آن K است پیدا کنید. سپس به مقدار آن یک واحد اضافه کنید و مقدار جدید را به متغیری که نام آن K است (درواقع به همان متغیر) اختصاص دهید.
به طور کلی در زبان C چندین عملگر مختلف انتساب یا جایگذاری وجود دارد که همه آنها برای تشکیل یک عبارت انتساب یا عبارت جایگذاری به کار میروند و مقدار یک عبارت را به یک شناسه یا متغیر اختصاص یا نسبت میدهند. متداولترین عملگر انتساب عملگر ’=’ است. فرم کلی دستور انتساب به صورت زیر است.
identifier = expression ;
variable = expression ;
توجه داشته باشید که عملگر انتساب، یعنی ’=’، کاملاً با عملگر مساوی که علامت ’= =’ است فرق دارد. عملگر انتساب برای اختصاص و نسبت دادن یک مقدار به یک شناسه یا متغیر به کار میرود، درحالی که عملگر تساوی یا برابری، برای تعیین اینکه آیا دو عبارت مقدار یکسان دارند یا نه به کار میرود. پس این دو عملگر نمیتوانند به جای یکدیگر به کار روند.
اگر دو عملوند عملگر انتساب از نظر نوع یکسان نباشند، مقدار عبارت یا عملوند طرف راست به طور خودکار به نوع شناسه یا متغیر طرف چپ عملگر تغییر مییابد. بنابراین اگر نتیجه عبارت سمت راست عملگر مزبور از نوع float و عملوند سمت چپ آن از نوع int باشد، جزء اعشاری آن حذف خواهد شد.