الثوابت Constants :
المتغيرات التي تستخدم الكلمة المحجوزة const عند التصريح عنها تسبب تثبيت قيمتها الأولية عند التصريح عنها ولا يمكن تغيير قيمتها الأولية لاحقا .
مثال:
const int a=10;
المثال أعلاه يصرح عن متغير نوع int بقيمة أولية (10) ثابتة .
الاستخدام الآخر للكلمة const مع المعبرات الرسمية نوع مؤشر pointer . المعبر نوع مؤشر يمثل إرسال مصفوفة لأسي نوع وهي تعني بشكل دقيق عنوان الموقع الأول وبالتالي السماح بتغيير محتويات الكائن الذي يتم إرسال عنوانه . للحيلولة دون ذلك نستخدم كلمة const مع المؤشر وبالتالي تكون فائدة المؤشر فقط لإرسال المصفوفة فقط دون تغيير محتوياتها . المثال التالي يستخدم كلمة const مع الدالة sp_to_dash لمنع تغيير محتويات المصفوفة التي سيتم ارسال عنوانها بالمعبر str . هذا الدالة تطبع السلسلة الحرفية str مع طباعة "-" بدلا من الفراغ .
مثال:
#include <stdio.h>
void sp_to_dash(const char *str);
int main(void)
{
sp_to_dash("this is a test");
return 0;
}
void sp_to_dash(const char *str)
{
while(*str){
if(*str== )printf("%c", - );
else printf("%c",*str);
str++;
}
}
إذا أعيد كتابة الدالة السابقة بالصيغة التالية سيتولد خطأ خلال الترجمة لأن الدالة ستغير محتويات المصفوفة
/*This is wrong.*/
void sp_to_dash(const char *str)
{
while(*str){
if(*str== )*str = - ;/*can t do this;str is const */
printf("%c",*str);
str++;
}
}