English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

دليل الأساسيات لـ C++

تحكم في عملية C++

الوظائف في C++

مجموعات C++ و strings

مبادئ C++

كلاس C++ وobjekt

المراجع في C++

الوراثة في C++

دليل STL لـ C++

دليل C++

أنواع المزينات في C++

في برمجة C++،ميزات النوعللتحويلنوع البياناتالمعنى.

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

فيما يلي قائمة بـ ميزات النوع:

  • signed

  • unsigned

  • long

  • short

محدد signed،unsigned،long و short يمكن تطبيقها على الأعداد الكاملةsigned و unsigned يمكن تطبيقها على الأعداد الصغيرةlong يمكن تطبيقها على الأعداد الثنائية

محدد signed و unsigned يمكن أن تكون long أو short السابق لميزات التوضيح.unsigned long int.

يُسمح في C++ باستخدام الرموز القصيرة لتحديدعدد قصير غير مواقعأوعدد طويل غير مواقعيمكنك عدم كتابة int، فقط كلمة unsigned short أو unsigned long،int هو مدمج. على سبيل المثال، الكلمتان التاليتان تُعتبر كلاهما متغيرات غير مواقع.

unsigned x;
unsigned int y;

لفهم الفرق بين ميزات التوضيح للأعداد الصحيحة والأعداد غير الصحيحة في C++، لنقوم بتشغيل هذا البرنامج القصير التالي:

#include <iostream>
using namespace std;
 
/* 
 * هذا البرنامج يوضح الفرق بين الأعداد الصحيحة والأعداد غير الصحيحة
*/
int main()
{
   short int i; // عدد قصير مواقع
   short unsigned int j; // عدد قصير غير مواقع
 
   j = 50000;
 
   i = j;
   cout << i << " " << j;
 
   return 0;
}

عند تشغيل البرنامج المذكور أعلاه، سيتم إنتاج النتيجة التالية:

-15536 50000

في النتيجة السابقة، نمط البتات للعدد القصير غير الموقع 50,000 يُفسر كعدد قصير مواقع

هذه قائمة بوصف ميزات النوع:

نوع البياناتالحجمالمعنى
signed int4 بايت
للعدد (يساوي int)
unsigned int4 بايتيمكنه تخزين فقط الأعداد غير السلبية
short2 بايتللعدد الصغير (مجال-32768 إلى 32767للفونات (نطاق
longعلى الأقل 4 بايتللعدد الكبير (يساوي long int)
unsigned long4 بايتللعدد الكبير أو 0 (يساوي unsigned long int)
long longunsigned long long用于非常大的整数(等于long long int)。
للفونات الكبيرة جداً من الأعداد (يساوي long long int).unsigned long long8 بايت
للفونات الكبيرة جداً من الأعداد الإيجابية أو الصفر (يساوي unsigned long long int)long double8 بايت
للفونات الكبيرة من النقاط العشريةunsigned charsigned charمن -127 إلى 127للفونات (نطاق
للفونات (تضمن نطاقunsigned char1 بايتمن 0 إلى 255للفونات (نطاق

)

نوع مدير shortيمكننا استخدام مدير shortعدد صغير

على سبيل المثال،

،بعدة نطاقات من -32,767 إلى +32,767).
// عدد صغير

short a = 12345;

ملاحظة: في هذا السياق، a هو متغير short integer.

short يساوي short int.

نوع مدير longمدير longإذا كان لدينا عدد كبير،

// عدد كبير
long b = 123456;

ملاحظة: long يساوي long int.

يمكن استخدام مدير long مع متغيرات double.

// عدد كبير من النقاط العشرية
long double c = 0.333333333333333333L;

ملاحظة:لتمثيل long double، نستخدم بعد L. إذا لم نستخدم الرقم بعد L، يتم تحويل double إلى هذا القيمة long double (قد يؤدي إلى فقدان البيانات).

long long

يمكن تكرار long مرتين لإنشاء نوع long long. هذا النوع يستخدم لأعداد أكبر من long. يمكن استخدام مدير long long فقط مع int.

على سبيل المثال،

// long long int
long long num = 12345678;

مدير (signed) و غير الموقعة (unsigned)

المغيرات الموقعة (signed) يمكنها احتواءإيجابيعددوسالبعدد، بما في ذلكصفر،على سبيل المثال،

// قيمة عدد إيجابي
signed int x = 23;
// قيمة عدد سالب
signed int y = -13;
// عدد صفر
signed int z = 0;

هنا،

  • x يحملعدد إيجابيعدد

  • y يحملعدد سالبعدد

  • z يحملصفرعدد

مغير غير معكوسunsigned يمكنه استيعاب الأعداد غير السلبية. على سبيل المثال،

// عدد إيجابي
unsigned int x = 2;
unsigned int y = 0;

هنا،

  • x يحمل عدد إيجابي

  • y يحمل صفر

عادة، يمكن لـ int تخزين نطاق من من -2,147,483,648 إلى 2,147,483,647 القيم. بينما يمكن لـ unsigned int تخزين نطاق من من 0 إلى 4,294,967,295 القيم.

الموجب (signed)، الغير الموجب (unsigned) والأحرف العادية (plain char)

يوجد في C ++ ثلاثة أنواع مختلفة من char: char،signed char و unsigned char. في الواقع، هناك نوعان فقط: signed char و unsigned char.

هذا لأن، حتى لو لم يكن char متطابقًا مع signed char أو unsigned char في C ++ القياسية، سيتخذ محول البرمجيات قرارًا بناءً على تفضيلاته الخاصة حول كيفية تعريف char كـ signed char أو unsigned char.

ملاحظة:عندما نستخدم char بدلاً من signed char أو unsigned char، يُسمى هذا النوعplain char (الأحرف العادية).

ربما لاحظت، يمكن لـ signed char تخزين الأرقام الإيجابية والسلبية، بينما يمكن لـ unsigned char تخزين الأرقام الإيجابية فقط (بما في ذلك0)

يضمن signed char نطاق أرقام يمكن تخزينها هومن -127 إلى 127، بينما نطاق unsigned char هومن 0 إلى 255.

// الأحرف العادية
char plain_1 = 65;
char plain_2 = 0;
// الأحرف العادية التي تحتوي على قيمة سالبة
// قد يؤدي إلى مشاكل في بعض محولات البرمجيات
char plain_3 = -56;
// signed char
signed char sin_1 = 12;
signed char sin_2 = 0;
signed char sin_3 = -12;
// unsigned char
unsigned char unsin_1 = -85;
unsigned char unsin_2 = 0;

هنا،

  • يملك plain_1 قيمة إيجابية

  • يملك plain_2 قيمة صفرية

  • يملك sin_1 قيمة إيجابية

  • يملك sin_2 قيمة صفرية

  • يملك sin_3 قيمة سالبة

  • يملك unsin_1 قيمة سالبة

  • يملك unsin_2 قيمة صفرية

لا تستخدم الأحرف العادية للقيام بعمليات حسابية رقمية؛ استخدم signed char أو unsigned char بدلاً من ذلك. يجب استخدام الأحرف النقية فقط لتحديد قيم الأحرف.

محددات النوع في C++

محدد النوع يقدم معلومات إضافية عن المتغير.

محدد النوع يقدم معلومات إضافية عن المتغير.المعنى
constconst لا يمكن تعديل أو تغيير كائنات النوع هذا أثناء تنفيذ البرنامج.
volatileمحدد volatile يخبر معالج البرمجة أن لا يتم تحسين متغيرات volatile المعلن عنها، مما يسمح للبرنامج بقراءة المتغير مباشرة من الذاكرة. يفضل معالج البرمجة متغيرات العادية ويضع قيمة المتغير في محول لتسريع عملية القراءة والكتابة.
restrictمن restrict المرجع المزين هو الطريقة الوحيدة لاستدعاء الجسم الذي يشير إليه. فقط قام C99 بإضافة نوع جديد من محدديات النوع restrict.