ثابت‌ها یا لیترال‌ها در ++C

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

ثابت‌ها می‌توانند از هر نوع داده پایه‌ای باشند و به مقادیر اعداد صحیح، اعداد ممیز شناور، کارکترها، رشته‌ها و مقادیر بولی تقسیم می‌شوند.

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

ثابت‌ها یا لیترال‌ها در ++C

لیترال‌های صحیح (Integer Literal)

یک لیترال صحیح می‌تواند یک عدد ثابت دهدهی، اکتال و یا هگزادسیمال باشد. مبنا یا پایه عدد با یک پیشوند مشخص می‌شود: 0x یا 0X برای هگزادسیمال، 0 برای اکتال و برای دهدهی نیز پیشوندی به کار نمی‌رود.

همچنین ممکن است یک لیترال صحیح شامل یک پسوند باشد که می‌تواند ترکیبی از 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 Literal)

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

مطلب پیشنهادی:  فایل‌ها و استریم‌ها در ++C

هنگام نمایش به فرم اعشاری، باید نقطه اعشار، بخش نمایی و یا هردو را لحاظ کرد و هنگام نمایش به فرم نمایی، باید بخش صحیح، بخش کسری و یا هردو را لحاظ کرد. بخش نمایی با 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 وجود داشته  که بخشی از کلیدواژه‌های استاندارد ++C هستند.

  • مقدار true نشان دهنده مقدار صحیح است.
  • مقدار false بیان کننده مقدار غلط است.

نباید مقدار true را برابر با 1 و مقدار false را برابر با 0 درنظر بگیرید.

لیترال‌های کارکتری

لیترال‌های کارکتری درون تک کوتیشن قرار می‌گیرند. اگر لیترال با L آغاز شود (فقط حرف بزرگ)، آنگاه لیترال از نوع کارکتر پهن بوده (مثال ’L’x) و باید در متغیر نوع «wchar_t» ذخیره شود در غیر این صورت، لیترال از نوع کارکتر باریک بوده (مثال ‘x’) و باید در متغیر نوع «char» ذخیره گردد.

لیترال کارکتری می‌تواند شامل کارکتر ساده (مثال ‘x’)، دنباله escape (مثال ‘\t’) یا کارکترهای یونیورسال (مثل ‘u02c0\’) باشد.

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

مطلب پیشنهادی:  اورلود کردن عملگرهای یگانی در ++C

دنباله escape

معنی

\\

 کارکتر \

\

 کارکتر

\

 کارکتر

?\

 کارکتر ?

a\

هشدار یا بیپ

b\

Backspace

f\

Form feed

n\

خط جدید

r\

Carriage return

t\

تب افقی

v\

تب عمودی

ooo\

عدد اکتال یک تا سه رقم

. . .xhh\

عدد هگزادسیمال یک رقم یا بیشتر

مثال زیر برخی از دنباله‌های کارکتری escape را نشان می‌دهد.

#include <iostream>
using namespace std;

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

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

Hello   World

لیترال رشته ای

لیترال‌های رشته ای درون دابل کوتیشن (“”) محصور می‌شوند. لیترال رشته‌ای شامل کارکترهایی مشابه لیترال کارکتری می‌باشد: کارکترهای ساده، دنباله‌های escape، و کارکترهای یونیورسال.

می‌توان یک خط بلند را با استفاده از لیترال‌های رشته ای به چند خط شکسته و با استفاده از فضای خالی از هم جدا کرد.

مثال‌هایی از لیترال‌های رشته ای در زیر آورده شده است. هر سه حالت رشته بیان کننده رشته یکسانی می‌باشند.

"hello, dear"

"hello, \

dear"

"hello, " "d" "ear"

تعریف ثابت‌ها

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

  • استفاده از پیش پردازنده define#
  • استفاده از کلیدواژه const

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

خط زیر نحوه استفاده از پیش پردازنده define# برای تعریف یک ثابت را نشان می‌دهد.

#define identifier value

مثال زیر جزئیات آن را توضیح می‌دهد.

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

مثال زیر جزئیات آن را توضیح خواهد داد.

#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

به عنوان برنامه‌نویس خوب، بهتر است که ثوابت را با حروف بزرگ تعریف کنیم.

مطلب پیشنهادی:  اورلود کردن عملگر دسترسی کلاس (->) در ++C

منبع: ترجمه از سایت tutorialspoint.com

اگر این نوشته‌ برایتان مفید بود لطفا کامنت بنویسید.

مطالعه دیگر جلسات این آموزش<< جلسه قبلی                    جلسه بعدی >>

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

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