العامل ?:
(Conditional Operator)
العامل ?:
يقال له Conditional أو Ternary Operator لأنه يأخذ ثلاث عناصر ليعمل.
يمكن إستعماله بدل جمل الشرط if
و else
في حال كنت تريد إعطاء قيمة للمتغير.
بناؤه
variable x = (expression) ? value if true : value if false
expression
:   يمثل الشرط الذي نضعه.
value if true
:   تمثل القيمة التي ستعطى للمتغير x
إذا تحقق الشرط نضعها بعد الرمز ?
.
value if false
:   تمثل القيمة التي ستعطى للمتغير x
إذا لم يتحقق الشرط نضعها بعد الرمز :
.
المثال الأول
Main.cpp
#include <iostream>
using namespace std;
int main()
{
int a = 10;
// b إن لم تكن كذالك سيتم وضع القيمة 30 في المتغير ,b تساوي 1 سيتم وضع القيمة 20 في المتغير a إذا كانت قيمة المتغير
int b = (a == 1) ?20 :30;
cout << "b = " << b;
return 0;
}
سنحصل على النتيجة التالية عند التشغيل.
b = 30
نلاحظ أنه تم وضع القيمة 30 في b
لأن نتيجة الشرط كانت false
.
المثال الثاني
Main.cpp
#include <iostream>
using namespace std;
int main()
{
int a = 10;
// b إن لم تكن كذالك سيتم وضع القيمة 30 في المتغير ,b أكبر من 1 سيتم وضع القيمة 20 في المتغير a إذا كانت قيمة المتغير
int b = (a > 1) ?20 :30;
cout << "b = " << b;
return 0;
}
سنحصل على النتيجة التالية عند التشغيل.
b = 20
نلاحظ أنه تم وضع القيمة 20 في b
لأن نتيجة الشرط كانت true
.
العامل sizeof()
(Size Of Operator)
يستخدم لمعرفة حجم المساحة المخصصة في الذاكرة لأي شيء يتم تمريره بين القوسين.
الرقم الذي يتم إرجاعه يمثل الحجم بالـ Byte.
المثال الأول
Main.cpp
#include <iostream>
using namespace std;
int main()
{
// C++ هنا قمنا بطباعة الحجم الذي يتطلبه كل نوع جاهز في لغة
cout << "Size of char: " << sizeof(char) << endl;
cout << "Size of int: " << sizeof(int) << endl;
cout << "Size of float: " << sizeof(float) << endl;
cout << "Size of double: " << sizeof(double) << endl;
cout << "Size of short int: " << sizeof(short int) << endl;
cout << "Size of long int: " << sizeof(long int) << endl;
cout << "Size of long long int: " << sizeof(long long int) << endl;
cout << "Size of long double: " << sizeof(long double) << endl;
return 0;
}
سنحصل على النتيجة التالية عند التشغيل.
Size of char: 1
Size of int: 4
Size of float: 4
Size of double: 8
Size of short int: 2
Size of long int: 4
Size of long long int: 8
Size of long double: 12
المثال الثاني
Main.cpp
#include <iostream>
using namespace std;
int main()
{
// int و نوعه x هنا قمنا بتعريف متغير إسمه
int x = 5;
// x هنا قمنا بطباعة الحجم الذي تم حجزه في الذاكرة من أجل المتغير
cout << "Size of x in memory: " << sizeof(char) << " Byte\n";
return 0;
}
سنحصل على النتيجة التالية عند التشغيل.
Size of x in memory: 1 Byte
العامل &
(Address)
يستخدم لمعرفة عنوان المساحة المخصصة في الذاكرة للشيء الذي يتم وضعه بعده مباشرةً.
مثال
Main.cpp
#include <iostream>
using namespace std;
int main()
{
// int و نوعه x هنا قمنا بتعريف متغير إسمه
int x = 5;
// في الذاكرة x هنا قمنا بطباعة عنوان المساحة التي تم تخصيصها للمتغير
cout << "Address of x in memory: " << &x;
return 0;
}
سنحصل على نتيجة تشبه النتيجة التالية عند التشغيل.
Address of x in memory: 0x72feec
العامل *
(Pointer)
يستخدم لوضع مؤشر للشيء عند تعريفه مما يجعلك قادر على الوصول إليه بشكل مباشر من أي مكان تريد من خلال عنوانه في الذاكرة.
مثال
Main.cpp
#include <iostream>
using namespace std;
int main()
{
// 5 و قيمته x هنا قمنا بتعريف متغير إسمه
int x = 5;
// x و قمنا بتعريفه كمؤشر للمتغير y هنا قمنا بتعريف متغير إسمه
// أصبحا يشيران لنفس القيمة المخزنة في الذاكرة y و المتغير x إذاً المتغير
int *y = &x;
// x و التي هي نفسها قيمة المتغير y هنا قمنا بطباعة القيمة الموضوعة في المتغير
cout << "y contain x value which is: " << *y;
return 0;
}
سنحصل على نتيجة تشبه النتيجة التالية عند التشغيل.
y contain x value which is: 5
ملاحظة
ستتعرف على المؤشرات و كيفية التعامل معهم بشكل مفصل لاحقاً في الدورة; و يكفي أن تفهم معنى كلمة مؤشر.
العامل ,
(Comma)
تستخدم الفاصلة لتنفيذ أكثر من عملية حسابية و من ثم إسناد قيمتها كلها في متغير واحد.
مع الإشارة إلى أنه يجب وضع فاصلة بين كل عملتين تفوم بوضعهما.
مثال
Main.cpp
#include <iostream>
using namespace std;
int main()
{
// x هنا قمنا بتعريف متغير إسمه
int x;
// s تساوي 1, ثم أضفنا عليها 2, ثم ضربناها بالرقم 5. و في النهاية وضعنا الناتج في المتغير x هنا قمنا بجعل قيمة
int s = (x = 1, x += 2, x *= 5);
// s هنا قمنا بطباعة قيمة المتغير
cout << "s = ((1) + 2) * 5 = " << s;
return 0;
}
سنحصل على نتيجة تشبه النتيجة التالية عند التشغيل.
s = ((1) + 2) * 5 = 15