یادگیری ++C به زبان ساده: از اولین خط کد تا ساخت پروژه‌های پیشرفته |جلسه نهم:ثابت‌ها/ لیترال (Literal) 
C++ Programming Language

یادگیری ++C به زبان ساده: از اولین خط کد تا ساخت پروژه‌های پیشرفته |جلسه نهم:ثابت‌ها/ لیترال (Literal) 

ثابت‌ها به مقادیر ثابتی اشاره دارند که برنامه نباید آن‌ها را تغییر دهد و به آن‌ها لیترال (Literal) گفته می‌شود.

ثابت‌ها می‌توانند از هر یک از انواع داده‌ای پایه باشند و می‌توان آن‌ها را به دسته‌های اعداد صحیح (Integer Numerals)، اعداد اعشاری (Floating-Point Numerals)، کاراکترها (Characters)، رشته‌ها (Strings) و مقادیر بولی (Boolean Values) تقسیم کرد.

دوباره باید گفت که ثابت‌ها درست مانند متغیرهای معمولی رفتار می‌کنند، با این تفاوت که مقدار آن‌ها پس از تعریف نمی‌تواند تغییر یابد.

اعداد صحیح (Integer Literals)

یک عدد صحیح می‌تواند یک مقدار دهدهی (Decimal)، هشت‌هشتی (Octal) یا هگزادسیمال (Hexadecimal) باشد. یک پیشوند (Prefix) پایه یا مبنای عدد را مشخص می‌کند: 0x یا 0X برای هگزادسیمال، 0 برای هشت‌هشتی، و بدون هیچ پیشوندی برای دهدهی.

یک عدد صحیح همچنین می‌تواند یک پسوند (Suffix) داشته باشد که ترکیبی از U و L برای مشخص کردن بدون علامت (Unsigned) و بلند (Long) است. این پسوند می‌تواند با حروف بزرگ یا کوچک نوشته شود و ترتیب آن‌ها اهمیتی ندارد.

در اینجا چند مثال از لیترال‌های عدد صحیح آورده شده است

212         // Legal
215u        // Legal
0xFeeL      // Legal
078         // Illegal: 8 is not an octal digit
032UU       // Illegal: cannot repeat a suffix

در ادامه نمونه‌های دیگری از انواع مختلف لیترال‌های عدد صحیح آورده شده است

85         // decimal
0213       // octal
0x4b       // hexadecimal
30         // int
30u        // unsigned int
30l        // long
30ul       // unsigned long

لیترال‌های اعشاری (Floating-point Literals)

یک لیترال اعشاری شامل قسمت عدد صحیح، نقطه اعشار، قسمت کسری و قسمت توان (Exponent) است. شما می‌توانید لیترال‌های اعشاری را به صورت دهدهی (Decimal) یا نمایی (Exponential) نمایش دهید.

هنگام استفاده از فرم دهدهی، باید نقطه اعشار، توان، یا هر دو را درج کنید. و هنگام استفاده از فرم نمایی، باید قسمت عدد صحیح، قسمت کسری، یا هر دو را درج نمایید. توان علامت‌دار با e یا E مشخص می‌شود.

در اینجا چند نمونه از لیترال‌های اعشاری آورده شده است

3.14159       // Legal
314159E-5L    // Legal
510E          // Illegal: incomplete exponent
210f          // Illegal: no decimal or exponent
.e55          // Illegal: missing integer or fraction

در زبان C++ دو لیترال بولی وجود دارد که بخشی از کلمات کلیدی استاندارد زبان هستند:

  • مقدار true که نشان‌دهنده درست بودن است.
  • مقدار false که نشان‌دهنده نادرست بودن است.

نباید مقدار true را معادل با ۱ و مقدار false را معادل با ۰ در نظر بگیرید.

لیترال‌های کاراکتر (Character Literals)

لیترال‌های کاراکتر در علامت نقل‌قول تکی قرار می‌گیرند. اگر لیترال با حرف بزرگ L آغاز شود (مثلاً L'x')، به آن لیترال کاراکتر گسترده (wide character) گفته می‌شود و باید در متغیر از نوع wchar_t ذخیره شود. در غیر این صورت (مثلاً 'x')، لیترال کاراکتر باریک (narrow) محسوب می‌شود و می‌توان آن را در یک متغیر ساده از نوع char ذخیره کرد.

یک لیترال کاراکتر می‌تواند یکی از موارد زیر باشد:

  • یک کاراکتر معمولی (مانند 'x')
  • یک دنباله فرار (escape sequence) مانند '\t'
  • یک کاراکتر یونیورسال (universal character) مانند '\u02C0'

در زبان C++ برخی کاراکترها وقتی با علامت \ (بک‌اسلش) نوشته می‌شوند، معانی خاصی پیدا می‌کنند و برای نمایش مواردی مانند خط جدید (\n) یا تب (فاصله افقی) (\t) استفاده می‌شوند.

در اینجا لیستی از برخی از این کدهای دنباله فرار (Escape Sequence) آورده شده است:

لیترال‌های کاراکتر (Character Literals)

مثال

در زیر یک مثال آورده شده است که چند کاراکتر دنباله فرار را نشان می‌دهد:

#include <iostream>
using namespace std;

int main() {
   cout << "Hello\tWorld\n\n";
   return 0;
}

وقتی کد بالا کامپایل و اجرا می‌شود، خروجی زیر را تولید می‌کند −

Hello   World

لیترال‌های رشته‌ای (String Literals)

لیترال‌های رشته‌ای در علامت نقل‌قول دوتایی قرار می‌گیرند. یک رشته شامل کاراکترهایی است که مشابه لیترال‌های کاراکتری هستند: کاراکترهای معمولی، دنباله‌های فرار (Escape Sequences) و کاراکترهای یونیورسال (Universal Characters).

شما می‌توانید یک خط طولانی را به چند خط تقسیم کرده و آن‌ها را با استفاده از لیترال‌های رشته‌ای و فاصله‌های خالی (Whitespace) جدا کنید.

در اینجا چند نمونه از لیترال‌های رشته‌ای آورده شده است. تمام این سه شکل، رشته‌هایی یکسان را تولید می‌کنند.

"hello, dear"

"hello, \

dear"

"hello, " "d" "ear"

تعریف ثابت‌ها (Defining Constants)

در زبان C++ دو روش ساده برای تعریف ثابت‌ها وجود دارد:

  1. استفاده از پیش‌پردازنده #define
  2. استفاده از کلیدواژه const

پیش‌پردازنده #define

در ادامه شکل کلی استفاده از پیش‌پردازنده #define برای تعریف یک ثابت آورده شده است:

#define CONSTANT_NAME value

مثال:

#define PI 3.14159
#define MAX_LENGTH 100

در این روش، هنگام کامپایل، پیش‌پردازنده تمام مواردی که CONSTANT_NAME در کد ظاهر شده‌اند را با مقدار مربوطه جایگزین می‌کند. توجه داشته باشید که این یک جایگزینی متنی است و نوع داده‌ای ندارد.

#define identifier value

مثال

مثال زیر نحوه استفاده از پیش‌پردازنده #define برای تعریف ثابت را به‌صورت کامل توضیح می‌دهد:

#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;
}

وقتی کد بالا کامپایل و اجرا می‌شود، خروجی زیر را تولید می‌کند

50

کلیدواژه const

شما می‌توانید از پیشوند const برای اعلام ثابت‌ها با نوع داده مشخص به شکل زیر استفاده کنید −

const type variable = value;

مثال

مثال زیر نحوه استفاده از کلیدواژه const برای تعریف ثابت‌ها را به‌صورت کامل توضیح می‌دهد:

#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;
}

وقتی کد بالا کامپایل و اجرا می‌شود، خروجی زیر را تولید می‌کند

50

توجه داشته باشید که تعریف ثابت‌ها با حروف بزرگ (CAPITALS) یک روش برنامه‌نویسی خوب و رایج است.

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

PHP از دستورات echo و print برای نمایش خروجی در مرورگر یا کنسول PHP استفاده می‌کند. هر دو ساختارهای زبان...
شناسه‌ها در ++C نام‌های منحصربه‌فردی هستند که برای شناسایی متغیرها، توابع، کلاس‌ها، آرایه‌ها و سایر آیتم‌های تعریف‌شده توسط کاربر در...
++C
کلمات کلیدی در C++ کلمات رزرو شده‌ای هستند که برای کامپایلر معنا و مفهوم خاصی دارند. این کلمات نمی‌توانند برای...
++C
توکن‌های C++ کوچک‌ترین واحدهای مستقل در یک برنامه هستند که توسط کامپایلر شناسایی و پردازش می‌شوند. این توکن‌ها با هم...
C++ Programming Language
حذف فضای نام (Namespace) شما می‌توانید به‌صورت صریح از پیشوند std:: برای اشیاء و توابع کتابخانه استاندارد استفاده کنید، به‌جای اینکه از...
C++ Programming Language
چاپ کردن “Hello, World!” اولین برنامه در زبان ++C است. در اینجا، این برنامه عبارت “Hello, World” را روی کنسول...
C++ Programming Language