ثابت‌ها یا لیترال‌ها در ++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)

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

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

دنباله 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

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

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

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

cpp programming language

دامنه متغیرها در ++C  ویرایشگر نوع داده در ++C

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

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