القائمة الرئيسية

الصفحات

الثوابت و حساسية الحروف / C - Constants and Literals

 

تشير الثوابت إلى القيم الثابتة التي لا يجوز للبرنامج تغييرها أثناء تنفيذه. تسمى هذه القيم الثابتة أيضًا القيم الحرفية .

يمكن أن تكون الثوابت من أي نوع من أنواع البيانات الأساسية مثل ثابت عدد صحيح أو ثابت عائم أو ثابت حرف أو سلسلة حرفية . كما توجد ثوابت التعداد.

يتم التعامل مع الثوابت تمامًا مثل المتغيرات العادية باستثناء أنه لا يمكن تعديل قيمها بعد تعريفها.

عدد صحيح حرفي

يمكن أن يكون العدد الصحيح الحرفي ثابتًا عشريًا أو ثمانيًا أو سداسيًا عشريًا. تحدد البادئة الأساس أو الجذر: 0x أو 0X للسداسي عشري و 0 للثماني ولا شيء للعشري.

يمكن أن يكون للعدد الصحيح الحرفي أيضًا لاحقة تتكون من تركيبة من U و L ، لعدم الإشارة والطويل ، على التوالي. يمكن أن تكون اللاحقة كبيرة أو صغيرة ويمكن أن تكون بأي ترتيب.

فيما يلي بعض الأمثلة على القيم الحرفية الصحيحة -

212         /* Legal */
215u        /* Legal */
0xFeeL      /* Legal */
078         /* Illegal: 8 is not an octal digit */
032UU       /* Illegal: cannot repeat a suffix */

فيما يلي أمثلة أخرى لأنواع مختلفة من القيم الحرفية -

85         /* decimal */
0213       /* octal */
0x4b       /* hexadecimal */
30         /* int */
30u        /* unsigned int */
30l        /* long */
30ul       /* unsigned long */

الفاصلة العائمة Literals

تحتوي الفاصلة العائمة على جزء صحيح ونقطة عشرية وجزء كسري وجزء أُس. يمكنك تمثيل القيم الحرفية للفاصلة العائمة إما في شكل عشري أو شكل أسي.

أثناء تمثيل النموذج العشري ، يجب تضمين العلامة العشرية أو الأس أو كليهما ؛ وأثناء تمثيل النموذج الأسي ، يجب تضمين جزء العدد الصحيح أو الجزء الكسري أو كليهما. يتم تقديم الأس الموقع بواسطة e أو E.

فيما يلي بعض الأمثلة على حرفية الفاصلة العائمة -

3.14159       /* Legal */
314159E-5L    /* Legal */
510E          /* Illegal: incomplete exponent */
210f          /* Illegal: no decimal or exponent */
.e55          /* Illegal: missing integer or fraction */

ثوابت الشخصية

يتم وضع الأحرف الحرفية في علامات اقتباس فردية ، على سبيل المثال ، يمكن تخزين "x" في متغير بسيط من نوع char .

يمكن أن يكون الحرف الحرفي حرفًا عاديًا (على سبيل المثال ، "x") ، أو تسلسل هروب (على سبيل المثال ، "\ t") ، أو حرفًا عامًا (على سبيل المثال ، "\ u02C0").

هناك أحرف معينة في C تمثل معنى خاصًا عندما تسبقها شرطة مائلة للخلف على سبيل المثال ، سطر جديد (\ n) أو علامة تبويب (\ t).

فيما يلي مثال لإظهار بعض أحرف تسلسل الهروب -


#include <stdio.h>

int main() {
   printf("Hello\tWorld\n\n");

   return 0;
}

عندما يتم تجميع التعليمات البرمجية أعلاه وتنفيذها ، فإنها تنتج النتيجة التالية -

Hello World

سلسلة حرفية

يتم وضع القيم الحرفية أو الثوابت في السلسلة بين علامتي اقتباس "". تحتوي السلسلة على أحرف تشبه الأحرف الحرفية: أحرف عادية ، وتسلسلات هروب ، وأحرف عامة.

يمكنك تقسيم سطر طويل إلى عدة أسطر باستخدام القيم الحرفية للسلسلة وفصلها باستخدام مسافات بيضاء.

فيما يلي بعض الأمثلة على السلاسل الحرفية. جميع الأشكال الثلاثة هي سلاسل متطابقة.

"hello, dear"

"hello, \

dear"

"hello, " "d" "ear"

تحديد الثوابت

هناك طريقتان بسيطتان في لغة C لتعريف الثوابت -

  • باستخدام #define preprocessor.

  • باستخدام كلمة const .

#define المعالج الأولي

فيما يلي نموذج لاستخدام #define preprocessor لتحديد ثابت -

#define identifier value

يوضح المثال التالي ذلك بالتفصيل -


#include <stdio.h>

#define LENGTH 10   
#define WIDTH  5
#define NEWLINE '\n'

int main() {
   int area;  
  
   area = LENGTH * WIDTH;
   printf("value of area : %d", area);
   printf("%c", NEWLINE);

   return 0;
}

عندما يتم تجميع التعليمات البرمجية أعلاه وتنفيذها ، فإنها تنتج النتيجة التالية -

value of area : 50

الكلمة الرئيسية const

يمكنك استخدام بادئة const لتعريف الثوابت بنوع معين على النحو التالي -

const type variable = value;

يوضح المثال التالي ذلك بالتفصيل -


#include <stdio.h>

int main() {
   const int  LENGTH = 10;
   const int  WIDTH = 5;
   const char NEWLINE = '\n';
   int area;  
   
   area = LENGTH * WIDTH;
   printf("value of area : %d", area);
   printf("%c", NEWLINE);

   return 0;
}

عندما يتم تجميع التعليمات البرمجية أعلاه وتنفيذها ، فإنها تنتج النتيجة التالية -

value of area : 50

لاحظ أنه من الممارسات البرمجية الجيدة تحديد الثوابت في الأحرف الكبيرة.

الصفحة التالية                                                                                 الصفحة السابقة 

هل اعجبك الموضوع :

تعليقات