Home Primary Data Types in C/C++
Post
Cancel

Primary Data Types in C/C++

لغة الـسي بلس بلس strongly-typed language، يعني كل variable هـنعملو declaration لازم نحدد الـ data type بتعتو الأول، دا عشان نعرف الـ compiler بالحجم اللي هيحجزو ف الـ memory للـ variable، الحجم هيكون حسب الـ data type لأن كل data type بتاخد مساحة معينة فـ الـ memory، الـ data types فـ الـ ++C ليها أنواع اساسية(Primary)، مشتقة(Derived) و أنواع أحنا بنعملها(User Defined).

C_C++_Data_Types


1. Integer Types

لغة الـ ++C عندها أربعة أحجام للـ Integer، كل واحد من الأربعة ممكن يكون signed (سالب أو موجب أو صفر) أو unsigned (موجب بس)، للأختصار ممكن نكتب long بس بدل long int وكهذا..

Int_in_cpp

Sizes of Integer Types

int_type_size

integer literal representations

representationprefix
binary0b
octal0
decimalThe default
hexadecimal0x

2. Floating-Point Types

الأرقام العشرية والجزء الكسري منها مش بيتخزن بشكل كامل فـ الـ Memory لكن بيتخزن بشكل تقريبي، الـ Floating-Point Types بتاخد جزء محدود من الـ Memory بيسمى بـ type’s precision، لغة الـ ++C ليها ثلاث مستويات precision:

  • float -> single precision.
  • double -> double precision.
  • long double -> extended precision.

Floating-Point Literals

الـ default للـ Floating-point literals هو double precision، لو عايزين الـ single precision بنستخدم الـخاتمة (suffix) f أو F، و للـ extended precision بنستخدم l أو L كـ suffix.

1
2
3
float single_precision = 0.96F; // for single precision
double double_precision = 0.256; // for double precision
long double extended_precision = 0.85L; // for extended precision

ممكن نستخم الـ Scientific notation فـ الـ Floating-point literals

1
2
3
double avogadro_const = 6.022e23; // = 6.02 x 10^23 (positive exponent)
double electron_charge = 1.6e-19; // = 1.6 x 10^-19 (negative exponent)

float vs. double

طب ايه الفرق بين float و double ؟

Differencefloatdouble
IEEE 754single-precisiondouble-precision
occupy32 bits64 bits
Byte Size4 byte8 byte
precision after decimal point7 decimal digits15 decimal digits
  • float is a 32-bit IEEE 754 single precision

single-precision

  • double is a 64-bit IEEE 754 double precision

double-precision


3. Booleans

الـ Boolean values اتنين بس true أو false، رقم 1 أو اي قيمة غير الصفر بتمثل true، الـ 0 بيمثل false

1
2
bool i_love_u = true
bool i_hate_u = false
1
2
3
4
5
6
// Do you want to watch a movie with me? 
bool answer = 0; // This means false
if(answer)
    std::cout << "Okay let's watch, I love you <3"; // case answer is true or any number except 0
else
    std::cout << ".. stupid I'll eat all the popcorn alone 💢"; // case answer is false or 0

4. Character Types

الـ Character Types بتخزن اي رموز و حروف، وفي ستة أنواع للـ Character Types:

Character Typescharacter sets
char1-byte
char16_t2-byte
char32_t4-byte
signed char1-byte
unsigned char1-byte
wchar_tsupport the largest character sets

ايه الاختلاف بين signed char و unsigned char ؟

The differencesigned charunsigned char
Range-128 to 1270 to 255
Data bits7 data bits (1 for the sign)8 bits for data
  • signed char

signed_char

  • unsigned char

unsigned_char


5. void

بنستخدم void فـ حالة أن الدالة مبترجعش أي value

1
2
3
4
5
6
7
8
9
10
11
// It just print some text and doesn't return any value
void I_dont_return(){
    std::cout << "I don't return any value.";
}

// void function مثال عكس الـ
int I_return_int_value(){
    int x = 2; int y = 8;
    int sum = x + y;
    return sum; // In this case return value is 10
}
This post is licensed under CC BY 4.0 by the author.