لغة الـسي بلس بلس strongly-typed language، يعني كل variable هـنعملو declaration لازم نحدد الـ data type بتعتو الأول، دا عشان نعرف الـ compiler بالحجم اللي هيحجزو ف الـ memory للـ variable، الحجم هيكون حسب الـ data type لأن كل data type بتاخد مساحة معينة فـ الـ memory، الـ data types فـ الـ ++C ليها أنواع اساسية(Primary)، مشتقة(Derived) و أنواع أحنا بنعملها(User Defined).
لغة الـ ++C عندها أربعة أحجام للـ Integer، كل واحد من الأربعة ممكن يكون signed (سالب أو موجب أو صفر) أو unsigned (موجب بس)، للأختصار ممكن نكتب long بس بدل long int وكهذا..
| representation | prefix |
|---|---|
| binary | 0b |
| octal | 0 |
| decimal | The default |
| hexadecimal | 0x |
الأرقام العشرية والجزء الكسري منها مش بيتخزن بشكل كامل فـ الـ Memory لكن بيتخزن بشكل تقريبي، الـ Floating-Point Types بتاخد جزء محدود من الـ Memory بيسمى بـ type’s precision، لغة الـ ++C ليها ثلاث مستويات precision:
- float -> single precision.
- double -> double precision.
- long double -> extended precision.
الـ default للـ Floating-point literals هو double precision، لو عايزين الـ single precision بنستخدم الـخاتمة (suffix) f أو F، و للـ extended precision بنستخدم l أو L كـ suffix.
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
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 و double ؟
| Difference | float | double |
|---|---|---|
| IEEE 754 | single-precision | double-precision |
| occupy | 32 bits | 64 bits |
| Byte Size | 4 byte | 8 byte |
| precision after decimal point | 7 decimal digits | 15 decimal digits |
الـ Boolean values اتنين بس true أو false، رقم 1 أو اي قيمة غير الصفر بتمثل true، الـ 0 بيمثل false
bool i_love_u = true
bool i_hate_u = false// 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الـ Character Types بتخزن اي رموز و حروف، وفي ستة أنواع للـ Character Types:
| Character Types | character sets |
|---|---|
| char | 1-byte |
| char16_t | 2-byte |
| char32_t | 4-byte |
| signed char | 1-byte |
| unsigned char | 1-byte |
| wchar_t | support the largest character sets |
ايه الاختلاف بين signed char و unsigned char ؟
| The difference | signed char | unsigned char |
|---|---|---|
| Range | -128 to 127 | 0 to 255 |
| Data bits | 7 data bits (1 for the sign) | 8 bits for data |
بنستخدم void فـ حالة أن الدالة مبترجعش أي value
// 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
}





