ما هي أنواع المتغيرات في لغة سي؟
في لغة سي يوجد الكثير من الثوابت والمتغيرات، منها متغيرات خاصة بالأعداد الصحيحة، وغيرها بالأعداد الحقيقية وغيرها بالأحرف، ودائمًا ما نقوم بالإعلان عنها قبل استعمالها سواء متغيرات أو ثوابت، أيّ أننا نحجز المكان أولًا ثمَّ نضع قيمة.
الأنواع الأساسية:
- int: متغير الأعداد الصحيحة حجمه 4 بايت.
- short: متغير الأعداد الصحيحة، وحجمه 2 بايت.
- long: متغير الأعداد الصحيحة، حجمه 4 بايت.
- bool: منطقي حجمه 1 بايت.
- float: متغير الأعداد الحقيقية وحجمه 4 بايت.
- double: متغير الأعداد الحقيقية، ضعف حجم ال(float)، وحجمه 8 بايت.
- char: متغير الرموز.
- wchar_t: حرفي واسع يضم جدول اليونيكود أوسع من الأسكي.
- void: ليس له قيمة، ويستخدم مع الوظائف التي لا ترجع قيمة.
شرح تفصيلي عن أنواع المتغيرات:
1-متغيِّر صحيح (int): في أنظمة 16 بت يحتّل 2 بايت في الذاكرة؛ ليُخزِّن أرقاما بين 32767 إلى -32768، يطلق عليه Short، أيّ أنه يستخدم لتخزين أرقام صحيحة عادية الحجم.
مثال على المتغير: ;ShortInt a
مثال على القيم المخزنة: 123546
بينما في أنظمة ال 32بت فهو يحتَّل 4 بايت لتخزين أرقام بين 214748647 إلى -2147483648، ويطلق عليه Long، مثال: (;longInt a)
2- (Float) متغيِّر حقيقي صغير(عشري): (7 أرقام) حجمها 4 بايت في الذاكرة وهي أرقام تحتوي على فاصلة عشرية، بمعنى أنه يستخدم لتخزين أرقام حقيقية قصيرة، مثال على المتغير: (;Float x)
مثال على القيم المخزنة: 3.5
3- (Double) متغيِّر حقيقي طويل(عشري): (15 رقم)، وهي أرقام حقيقية طويلة تحتوي على فاصلة عشرية وحجمها 8 بايت في الذاكرة، مثال على ذلك: (;Double b)
مثال على القيم المخزنة: 7.888.777.666
4- (Long Double) متغيِّر حقيقي طويل جدّا (عشري): وهي أرقام حقيقية ضخمة تحتوي على فاصلة عشرية، وحجمه 10 بايت في الذاكرة، مثال على ذلك: (;Longdouble x)
مثال على القيم المخزنة: 1.323.258.444.7777.1
5- متغير حرفي (Char): من أصغر المتغيرات وحجمه واحد بايت في الذاكرة لتخزين الحروف والأقواس والعلامات والأرقام ويتعامل معها على أنها حروف، ولا تُجرى عليها عمليات منطقية أو حسابية، أيّ أنه يُخزّن حرف واحد فقط سواء أكان حرف أو رقم، مثال على المتغير: (;Char x,y)
مثال على القيم المخزنة: “j”
6- String: ليس له حجم معين، ولكن يجب استدعاء مكتبتة.
7- متغير(bool): البوليان(Boolean) منطقي له قيمتان إما True or False.
ملاحظة: يدل التعبير(Unsigned) على الأرقام الموجبة بينما يدل (Signed) على الأرقام السالبة، وإذا لم يذكر أيّ منهما فيدل على أنه(Signed).