عملگرها در ++C
عملگرها (Operators) در ++C نمادهایی هستند که برای انجام عملیات روی متغیرها و مقادیر استفاده میشوند.
۱. عملگرهای حسابی (Arithmetic Operators)
این عملگرها برای انجام عملیات ریاضی استفاده میشوند.
عملگر | توضیح | مثال |
---|---|---|
+ |
جمع | a + b |
- |
تفریق | a - b |
* |
ضرب | a * b |
/ |
تقسیم | a / b |
% |
باقیمانده تقسیم | a % b |
int a = 10, b = 3;
cout << (a + b) << endl; // خروجی: 13
cout << (a % b) << endl; // خروجی: 1
cout << (a + b) << endl; // خروجی: 13
cout << (a % b) << endl; // خروجی: 1
۲. عملگرهای رابطهای (Relational Operators)
این عملگرها برای مقایسهی مقادیر استفاده میشوند و مقدار true یا false برمیگردانند.
عملگر | توضیح | مثال |
---|---|---|
== |
برابر است با | a == b |
!= |
نابرابر است با | a != b |
> |
بزرگتر از | a > b |
< |
کوچکتر از | a < b |
>= |
بزرگتر یا مساوی | a >= b |
<= |
کوچکتر یا مساوی | a <= b |
cout << (10 > 5) << endl; // خروجی: 1 (true)
cout << (10 == 5) << endl; // خروجی: 0 (false)
cout << (10 == 5) << endl; // خروجی: 0 (false)
۳. عملگرهای منطقی (Logical Operators)
این عملگرها برای بررسی شرایط منطقی استفاده میشوند.
عملگر | توضیح | مثال |
---|---|---|
&& |
و (AND) | (a > 5 && b < 10) |
` | ` | |
! |
نقیض (NOT) | !(a > 5) |
bool x = true, y = false;
cout << (x && y) << endl; // خروجی: 0 (false)
cout << (!x) << endl; // خروجی: 0 (false)
cout << (x && y) << endl; // خروجی: 0 (false)
cout << (!x) << endl; // خروجی: 0 (false)
۴. عملگرهای انتساب (Assignment Operators)
این عملگرها برای مقداردهی به متغیرها استفاده میشوند.
عملگر | توضیح | مثال |
---|---|---|
= |
مقداردهی ساده | a = b |
+= |
جمع و انتساب | a += b (معادل a = a + b ) |
-= |
تفریق و انتساب | a -= b |
*= |
ضرب و انتساب | a *= b |
/= |
تقسیم و انتساب | a /= b |
%= |
باقیمانده و انتساب | a %= b |
int a = 5;
a += 3; // a = 8
cout << a << endl;
a += 3; // a = 8
cout << a << endl;
۵. عملگرهای بیتی (Bitwise Operators)
این عملگرها روی بیتهای عدد کار میکنند.
عملگر | توضیح | مثال |
---|---|---|
& |
AND بیتی | a & b |
` | ` | OR بیتی |
^ |
XOR بیتی | a ^ b |
~ |
NOT بیتی | ~a |
<< |
شیفت چپ | a << 2 |
>> |
شیفت راست | a >> 2 |
int a = 5, b = 3;
cout << (a & b) << endl; // خروجی: 1
cout << (a << 1) << endl; // خروجی: 10 (شیفت چپ)
cout << (a & b) << endl; // خروجی: 1
cout << (a << 1) << endl; // خروجی: 10 (شیفت چپ)
۶. عملگرهای افزایش و کاهش (Increment & Decrement Operators)
عملگر | توضیح | مثال |
---|---|---|
++ |
افزایش یک واحدی | a++ یا ++a |
-- |
کاهش یک واحدی | a-- یا --a |
int x = 5;
cout << x++ << endl; // خروجی: 5
cout << ++x << endl; // خروجی: 7
cout << x++ << endl; // خروجی: 5
cout << ++x << endl; // خروجی: 7
x++
مقدار اولیه را نمایش میدهد و بعد مقدار را افزایش میدهد، ولی ++x
ابتدا مقدار را افزایش میدهد و سپس نمایش میدهد.
۷. عملگر شرطی سهتایی (Ternary Operator)
این عملگر به صورت شرط ? مقدار_اگر_درست : مقدار_اگر_غلط
است.
int a = 10, b = 20;
int min = (a < b) ? a : b;
cout << min << endl; // خروجی: 10
int min = (a < b) ? a : b;
cout << min << endl; // خروجی: 10
۸. عملگرهای اشارهگر (Pointer Operators)
عملگر | توضیح | مثال |
---|---|---|
* |
مقدار اشارهگر | *ptr |
& |
آدرس متغیر | &var |
int x = 10;
int* ptr = &x;
cout << *ptr << endl; // خروجی: 10
int* ptr = &x;
cout << *ptr << endl; // خروجی: 10
۹. عملگرهای تبدیل نوع (Type Casting Operators)
این عملگرها برای تبدیل نوع دادهها استفاده میشوند.
عملگر | توضیح | مثال |
---|---|---|
(type) |
تبدیل صریح | int x = (int)3.14; |
static_cast<type> |
تبدیل ایمن در زمان کامپایل | int x = static_cast<int>(3.14); |
reinterpret_cast<type> |
تبدیل آدرسها و اشارهگرها | char* p = reinterpret_cast<char*>(ptr); |
double pi = 3.14;
int x = static_cast<int>(pi);
cout << x << endl; // خروجی: 3
int x = static_cast<int>(pi);
cout << x << endl; // خروجی: 3
۱۰. عملگرهای عضویت کلاس (Class Member Operators)
عملگر | توضیح | مثال |
---|---|---|
. |
دسترسی به عضو کلاس | obj.var |
-> |
دسترسی از طریق اشارهگر | ptr->var |
class MyClass {
public:
int x = 10;
};
MyClass obj;
cout << obj.x << endl; // خروجی: 10
public:
int x = 10;
};
MyClass obj;
cout << obj.x << endl; // خروجی: 10
۱۱. عملگر sizeof
برای دریافت اندازهی یک متغیر یا نوع داده استفاده میشود.
cout << sizeof(int) << endl; // خروجی: 4 (در اکثر سیستمها)
۱۲. عملگر new
و delete
(مدیریت حافظه پویا)
برای تخصیص و آزادسازی حافظه در زمان اجرا استفاده میشوند.
int* ptr = new int(10); // تخصیص حافظه
cout << *ptr << endl;
delete ptr; // آزادسازی حافظه
cout << *ptr << endl;
delete ptr; // آزادسازی حافظه
