ثابت ها و لیترال ها در زبان C++
ثوابت به مقادیر ثابتی اشاره می کنند که در طول اجرای برنامه نمی توان آن ها را تغییر داد. به این مقادیر ثابت لیترال نیز می گویند. ثابت ها می توانند از هر نوع داده پایه ای که در زبان برنامه نویسی ++C وجود دارد (مانند ثابت عددی، ثابت رشته، ثابت کاراکتر و غیره)، باشند. عملکرد ثوابت درست مانند متغیرهای عادی می باشد با این تفاوت که مقدار ثوابت بعد از تعریف شدن قابل تغییر نیستند.
لیترال های عددی (Integer Literals)
لیترال عددی می تواند یک ثابت از نوع دسیمال یا هگزادسیمال باشد. یک پیشوند مبنا را مشخص می کند، مثلا از پیشوند 0x یا 0X در اعداد هگزادسیمال استفاده می شود ولی برای اعداد دسیمال پیشوندی وجود ندارد. همچنین از پسوند های U و L (Unsigned و Long) نیز می توان در لیترال های عددی استفاده کرد. ترتیب و بزرگ یا کوچک بودن حرف مهم نیست.
در اینجا چند مثال از لیترال های عددی در زبان C++ را مشاهده می کنید:
1 2 3 4 5 | 212 //Legal 215u // Legal 0xFeeL // Legal 078 // Illegal: 8 is not an octal digit 032UU // Illegal: cannot repeat a suffix |
در مثال زیر انواع مختلفی از لیترال های عددی را مشاهده می کنید:
1 2 3 4 5 6 7 | 85 // decimal 0213 // octal 0x4b // hexadecimal 30 // int 30u // unsigned int 30l // long 30ul // unsigned long |
لیترال های اعشاری (Floating-point Literals)
یک لیترال اعشاری شامل یک بخش عدد صحیح، یک نقطه اعشار، یک بخش کسری و یک بخش توان تشکیل شده است. شما می توانید لیترال های اعشاری را به شکل دسیمال یا نمایی نمایش دهید. زمانی به شکل دسیمال نمایش می دهید، باید از نقطه اعشاری، توان و یا هر دو استفاده کنید. و زمانی که به شکل نمایی نشان می دهید، باید از بخش عدد صحیح، بخش کسری و یا هر دو استفاده کنید.
چند نمونه از لیترال های اعشاری در زبان C++:
1 2 3 4 5 | 3.14159 // Legal 314159E-5L // Legal 510E // Illegal: incomplete exponent 210f // Illegal: no decimal or exponent .e55 // Illegal: missing integer or fraction |
لیترال های بولی (Boolean Literals)
در زبان برنامه نویسی C++ دو نوع لیترال بولی وجود دارد که جزء کلمات کلیدی زبان C++ هستند:
- true نشان دهنده درست بودن
- false نشان دهنده نادرست بودن
لیترال های کاراکتری (Character Constants)
لیترال های کاراکتری در بین علامت نقل قول تکی (‘) قرار می گیرند. اگر لیترال کاراکتری با L شروع شود (مانند L’x’) در نوع داده wchar_t ذخیره شود. در غیر این صورت می توان لیترال های کاراکتری (مانند ‘x’) را در نوع داده char ذخیره کرد. یک لیترال کاراکتری می تواند یک کاراکتر ساده (مانند ‘x’)، یک کاراکتر کنترلی (مانند ‘t‘) و یا یک کاراکتر جهانی (مانند ‘u02C0‘) باشد.
در زبان برنامه نویسی ++C تعداد معینی از کاراکتر ها وجود دارند که با یک علامت () مشخص می شوند و به آن ها کاراکتر کنترلی گفته می شود. آن ها هر کدام مفهوم خاصی دارند مثلا n برای ایجاد خط جدید یا t برای ایجاد فصله از نوع tab به کار می رود. در جدول زیر برخی از کاراکترهای کنترلی در زبان ++C را مشاهده می کنید:
کاراکتر کنترلی | معنی |
character | |
‘ | ‘ character |
“ | ” character |
? | ? character |
a | Alert or bell |
b | Backspace |
f | Form feed |
n | Newline |
r | Carriage return |
t | Horizontal tab |
v | Vertical tab |
ooo | Octal number of one to three digits |
xhh . . . | Hexadecimal number of one or more digits |
مثال زیر نحوه استفاده از کاراکتر های کنترلی در زبان برنامه نویسی C++ را نشان می دهد:
1 2 3 4 5 6 | #include <iostream> using namespace std; int main() { cout << "HellotWorldnn"; return 0; } |
زمانی که کد بالا توسط کامپایلر زبان C++ اجرا شود، نتیجه زیر را تولید خواهد کرد:
1 | Hello World |
لیترال های رشته ای (String Literals)
لیترال های رشته ای یا ثابت ها بین علامت نقل قول دوتایی (“”) قرار میگرند. یک رشته مانند لیترال های کاراکتری، می تواند حاوی کاراکترهای ساده (مانند ‘x’)، کاراکترهای کنترلی (مانند ‘t‘) و یا کاراکترهای جهانی (مانند ‘u02C0‘) باشد. شما می توانید یک خط طولانی را با استفاده از لیترال های رشته ای به چند خط کوتاه تقسیم کنید و یا با استفاده از فضای خالی سفید بخش های مختلف را از هم جدا کنید.
در اینجا چند نمونه از لیترال های رشته ای را مشاهده می کنید:
1 2 3 4 | "hello, dear" "hello, dear" "hello, " "d" "ear" |
تعریف یک ثابت
در زبان ++C دو روش ساده برای تعریف ثابت وجود دارد:
- استفاده از کلمه کلیدی const
- استفاده از پیش پردازنده #define
دستور پیش پردازنده #define
در زیر فرم کلی تعریف یک باثت با استفاده از #define را مشاهده می کنید:
1 | #define identifier value |
مثال زیر فرم بالا را توضیح می دهد:
1 2 3 4 5 6 7 8 9 10 11 12 | #include <iostream> using namespace std; #define LENGTH 10 #define WIDTH 5 #define NEWLINE 'n' int main() { int area; area = LENGTH * WIDTH; cout << area; cout << NEWLINE; return 0; } |
نتیجه کامپایل و اجرای کد بالا:
1 | value of area : 50 |
کلمه کلیدی const
در زیر فرم کلی تعریف یک باثت با استفاده از کلمه کلیدی const را مشاهده می کنید:
1 | const type variable = value; |
مثال زیر فرم بالا را توضیح می دهد:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | #include <iostream> using namespace std; int main() { const int LENGTH = 10; const int WIDTH = 5; const char NEWLINE = 'n'; int area; area = LENGTH * WIDTH; cout << area; cout << NEWLINE; return 0; } |
نتیجه کامپایل و اجرای کد بالا:
1 | value of area : 50 |
هیچ نظری ثبت نشده است