متغیر ها و ثوابت(کار با داده ها)
متغیر ها:
در زبان های برنامه نویسی، برای استفاده از داده ها باید اسمی برای داده مشخص کرد. این اسم کلمه ای برای حافظه است. اسم می تواند ترکیبی از
حروف(کوچک و بزرگ)،
اعداد و
_(یا همون خط ربط)،
بطول 255 کاراکتر(در حالت معمول) باشد(اولین کاراکتر اسم نباید عدد باشد).
داده می تواند حاوی عدد، حروف، علامت، رشته، فایل و هر چیز دیگری باشد.
متغیر ها محلی برای ذخیره داده ها هستند و چون داده ها دارای نوع می باشند، متغیر ها هم باید دارای نوع باشند. و ممکن است نوع و محتوای متغیر ها در طول اجرا(یا نوشتن) برنامه توسط کاربر(یا برنامه نویس) تغییر کنند.
قبل از استفاده از متغیر ها، ابتدا باید نوع و بدنبالش اسم آنها را تعریف کرد. نوع متغیر ها مقادیری که می تواند بپذیرد و اعمالی که می تواند انجام دهد را مشخص می کند. به اصطلاح،
تعیین نوع متغیر را تعریف(اعلان) متغیر می گویند.
متغیر را به دو روش تعریف می کنند:
یا
Type نوع داده/متغیر می باشد. که با حروف کوچک نوشته می شود. و به برنامه می گوید n مقدار حافظه را برای نوع فلان مشخص کن. این نوع می تواند کلمه کلیدی(رزرو شده) int, long, float, double, unsigned int, short int, unsigned long, long double, char و... باشد.
Name اسم متغیر می باشد. این اسم میتواند ترکیبی از
حروف(بزرگ و کوچک)،
اعداد و
_(یا همون خط ربط)،
بطول 255 کاراکتر(در حالت معمول) باشد(اولین کاراکتر اسم نباید عدد باشد). مثل: test22, abc_22, a_Z, X_X_23434_XX, fff555_oiuuy و...
Value مقدار اولیه متغیر می باشد. این گزینه اختیاری می باشد. یعنی می توان مقدار اولیه ای برای متغیر مشخص نکرد. این مقدار می تواند عدد، حروف، علامت، رشته، فایل و هر نوع داده ای باشد.
در آخر تعریف متغیر یک علامت
; قرار می گیرد که به کامپایلر(Compiler) می گوید تعریف متغیر به پایان رسیده است.
در صورت قرار ندادن این علامت، برنامه کامپایل نمی شود و خطا می دهد.
مثال هایی از تعریف(اعلان) متغیر:
یک متغیر از نوع عددی صحیح(int):
یک متغیر از نوع عددی صحیح(int) با مقدار اولیه:
سه متغیر از نوع عددی صحیح(int):
یک متغیر از نوع کاراکتری(char):
دو متغیر ار نوع مضاعف(double):
کد:
double count;
double numbers= 99999;
و...
وقتی برنامه با اسم متغیر برخورد می کند، ابتدا نوعش و سپس مقدارش را بررسی می کند. در آخر مقدار متغیر را جایگزین اسم متغیر می کند(در محل فراخوانی/استفاده شده) .
مقدار متغیرها را می توان مقایسه، ترکیب، جمع، تفریق، ضرب، تقسیم، کم و زیاد و... کرد که بعداً مفصل شرح داده خواهد شد.
ثابت ها:
ثوابت هم خصوصات متغیر ها رو دارند، با این تفاوت که
مقادیرشون تغییر نمی کند. یعنی
در تمام برنامه یک مقدار را دارند. مزایای ثوابت این است که: می توانند داده های(عدد، حروف، علامت، متن و...) کوتاه یا طولانی را در خود نگه دارند، که این در نوشتن مقادیر تکراری صرفه جویی می کند. مقادیر طولانی یا پیچیده را در سراسر برنامه در دسترس قرار می دهند(یعنی
یک اسم بجای چندین مقدار در چندین محل). خطاهای گرامری/Syntax را کاهش می دهد(بدلیل نوشتن/تایپ کمتر). خواندن و درک برنامه را توسط برنامه نویس ساده تر می کند. سرعت پردازش اشکال زدایی(Debugging) را بالا می برند(چون پیش پردازنده
مستقیماً مقدارش را جای
بررسی مقدارش جایگزین می کند) و...
برای تعریف ثابت دو روش وجود دارد:
دستور define# و
دستور const.
دستور define# یک دستور پیش پردازنده
و در همه جا قابل تعریف می باشد. بدان معنی که قبل از کامپایل(Compile/تولید) برنامه، خوانده و اعمال می شود. نام دیگر این نوع ثابت
ماکرو می باشد. و بشکل زیر تعریف می شود:
define# به پیش پردازنده می گوید که تعریف ماکرو آغاز می شود
(با حروف کوچک نوشته می شود).
Name اسم ماکرو می باشد. این اسم می تواند ترکیبی از
حروف(بزرگ و کوچک)،
اعداد و
_(یا همون خط ربط)،
بطول 255 کاراکتر(در حالت معمول) باشد(اولین کاراکتر اسم نباید عدد باشد).
معمولاً اسم ثابت ها را با حروف بزرگ مشخص می کنند.
Value مقدار ماکرو می باشد. این مقدار می تواند مانند متغیر ها حاوی هر نوع داده ای باشد.
برای تعریف مقدار ماکرو در چندین خط، می توان از علامت \ یا همون ممیز استفاده کرد.
تعریف ماکرو با علامت ; پایان نمی گیرد. اگر در تعریف ماکرو از این علامت استفاده کنید، پیش پردازنده آنرا به مقدار(Value) ماکرو اضافه می کند.
مثال هایی از تعریف ماکرو/ثابت:
کد:
#define x 25
#define IP 127.0.0.1
#define LEADER AlexAsghari
#define X_Z_H_H_Y_T_W_W 555.222.111
#define TAX 0.055
#define NoghteVirgools ;;;;;;;;;;;
#define MYNAME JohnAkabri
وقتی پیش پردازنده با اسم ماکرو در هر جایی از برنامه برخورد می کند، مقدار(Value) ماکرو را جایگزین اسم ماکرو می کند.
برای
نابود سازی(از بین بردن) ماکرو می توان از دستور پیش پردازنده
undef# استفاده کرد. یا به اصطلاح ماکرو را به حالت تعریف نشده(Undefine) در آورد. این عمل را وقتی کارتان
کلاً با ماکرو به اتمام رسید انجام دهید.
شکل کلی این دستور بصورت زیر می باشد:
undef# دستوری پیش پردازنده برای نابود سازی ماکرو می باشد.
MacroName اسم ماکروی موردنظر می باشد. این اسم باید در برنامه موجود باشد.
دستور نابود سازی ماکرو با علامت ; پایان نمی گیرد.
منبع:
http://forum.IranPHP.org