مشخصات مقاله
-
1222
-
0.0
-
4281
-
0
-
0
آموزش Constants و Literals در C++
آموزش ثوابت (Constants) و مقادیر ثابت (Literals) در ++C
ثوابت یا به انگلیسی Constants به مقادیر ثابتی اشاره دارد که ممکن است مقدارشان در طول برنامه به هیچ وجه تغییر نکند. به مقادیر ثابت در برنامه نویسی Literals نیز گفته می شود.
مقادیر ثابت یا constant ها می توانند از هر نوع داده ای اولیه ای باشند. این مقادیر به چند دسته ی زیر تقسیم می شوند:
- مقادیر عدد صحیح ثابت یا Integer numerals
- مقادیر عددی ثابت از نوع ممیز شناور (Floating-point)
- character ها
- Strings/مقادیر رشته ای ثابت که از مجموعه ای از کاراکترها تشکیل شده
- مقادیر بولی/Boolean
Constant ها کاربردی مشابه متغیرها دارند با این تفاوت که انتظار می رود پس از تعریف، مقدارشان تغییر نکند.
مقادیر ثابت از نوع عدد صحیح (Integer literals)
مقادیر عددی ثابت می توانند از نوع decimal (اعشاری)، octal (مبنای هشت) یا hexadecimal (مبنای 16) باشند. گاهی اعداد به این صورت نوشته می شوند: 0x یا 0X، 0 .
0x یا 0X نشانگر اعداد مبنای 16 و 0 نشانگر اعداد مبنای 8 می باشد.
مقادیر عددی می توانند پسوند نیز به این صورت داشته باشند: U و L. اعدادی که علامت ندارند با پسوند U و اعداد صحیح طولانی و بزرگ با پسوند L نوشته می شوند. پسوند می تواند با حروف کوچک یا بزرگ نوشته شده باشد.
در زیر نمونه ای از مقادیر ثابت از نوع عدد صحیح را مشاهده می کنید:
212 // Legal 215u // Legal 0xFeeL // Legal 078 // Illegal: 8 is not an octal digit 032UU // Illegal: cannot repeat a suffix
در زیر نمونه هایی دیگر از مقادیر ثابت از نوع عدد صحیح (integer literal) را مشاهده می کنید:
85 // decimal 0213 // octal 0x4b // hexadecimal 30 // int 30u // unsigned int 30l // long 30ul // unsigned long
مقادیر ثابت از نوع ممیز شناور (floating-point literals)
یک مقدار عددی ثابت که از نوع ممیز شناور باشد، قطعا دارای یک بخش عدد صحیح، نقطه ی اعشار، بخش اعشاری یا کسری و نیز یک بخش توان (exponent) می باشد. شما می توانید مقادیر ثابت از نوع عددی صحیح را به صورت اعشاری با نقطه ی اعشار و یا به صورت نمایی و با توان نگارش نمایید.
اگر با روش اول مقدار عددی اعشاری ثابت را نمایش می دهید، در آن صورت می بایست نقطه ی اعشار را درج کنید. چنانچه مایلید به روش دوم مقدار ثابت را نمایش دهید، لازم است بخش عدد صحیح، بخش کسری و یا هر دو را درج نمایید. جهت نمایش توان از علامت eیا E استفاده می شود.
در زیر نمونه هایی از مقادیر ثابت عددی از نوع ممیز شناور را مشاهده می کنید:
3.14159 // Legal 314159E-5L // Legal 510E // Illegal: incomplete exponent 210f // Illegal: no decimal or exponent .e55 // Illegal: missing integer or fraction
مقادیر ثابت از نوع بولی (Boolean Literal)
در کل دو نوع مقدار ثابت بولی وجود دارد که با کلیدواژگان استاندارد ++C نمایش داده می شوند:
- یک مقدار true که نمایشگر مقدار صحیح یا true می باشد.
- یک مقدار false که نمایشگر غلط یا false می باشد.
- لازم به توضیح است که شما نبایست مقدار true را برابر 1 و مقدار false را معادل 0 درنظربگیرید.
مقادیر ثابت از نوع character
مقادیر ثابت از نوع داده ای Character داخل یک تک کوتیشن محصور می شوند. چنانچه مقدار ثابت یا literal مورد نظر با L (حرف بزرگ) شروع شود، در آن صورت از نوع wide character literal یا یک مقدار ثابت از نوع Wider character محسوب می شود (مثال L'x'). در غیر این صورت، مقدار مورد نظر یک literal از نوع narrow character درنظر گرفته شده که می توان آن را در یک متغیر ساده از نوع charذخیره کرد (مثال 'x').
یک character literal می تواند یک کاراکتر ساده (برای مثال 'x') باشد و هم می تواند یک کاراکتر گریز نظیر '\t' و یا کاراکتر سراسری همچون '\u02C0' باشد.
در ++C تعدادی کاراکتر وجود دارد که قبل از آن ها یک علامت "/" مشاهده شده و دارای معنای خاصی هستند. به طور مثال کاراکتر \n نشانگر یک خط جدید و \t نمایشگر 8 خط فاصله یا همان tab می باشد. ذیل تعدادی از کدهای مربوط به کاراکترهای گریز را مشاهده می کنید:
ایجاد خط جدید
بازگشت به ابتدای سطر
ایجاد هشت فاصله به صورت افقی
ایجاد هشت فاصله به صورت عمودی
مثال زیر تعدادی از این کاراکترها را به صورت عملی مورد استفاده قرار می دهد:
#includeusing namespace std; int main() { cout << "Hello\tWorld\n\n"; return 0; }
زمانی که کد فوق کامپایل و اجرا می شود، کاربر خروجی زیر را مشاهده می کند:
Hello World
مقادیر ثابت از نوع رشته (String literal)
مقادیر ثابت از نوع رشته ای (string literal) داخل دابل کوتیشن محصور می شوند. یک رشته یا String حاوی تعدادی کاراکتر مشابه مقادیر ثابت از نوع character می باشد و در واقع متشکل از چندین character: کاراکترهای ساده، escape sequence ها و کاراکترهای سراسری می باشد.
شما می توانید یک خط واحد را با استفاده از مقادیر ثابت رشته ای (string literal) همزمان به چندین خط تقسیم نموده و سپس به واسطه ی کاراکتر whitespace آن ها را از هم جدا نمایید.
در زیر تعدادی مثال یا نمونه از string literal ها را مشاهده می کنید. هر سه نمونه ی زیر رشته ای یکسان هستند که به شکل های مختلف نگارش شده اند.
"hello, dear" "hello, \ dear" "hello, " "d" "ear"
تعریف ثوابت در ++C / Constants
دو روش کلی برای تعریف ثوابت در ++C وجود دارد که به شرح زیر می باشد:
- استفاده از دستور پیش پردازنده ی #define جهت تعریف ثابت.
- استفاده از کلیدواژه ی const جهت تعریف ثابت مورد نظر.
دستور پیش پردازنده ی #define
در زیر دستور و نحوه ی تعریف مقدار ثابت با #define را مشاهده می کنید:
#define identifier value
مثال زیر به تفصیل دستور را شرح و آن را به طور عملی بکار می برد:
#includeusing 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 و انتخاب اسم، نوع داده ای را مشخص نمایید:
const type variable = value;
در زیر مثالی را می بینید که به صورت کاربردی ساختار نگارشی فوق را بکار برده و آن را به تفصیل شرح می دهد:
#includeusing 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
توصیه می شود که (اسم) ثوابت را با حروف بزرگ تعریف نمایید.