متغیرها در زبان C
متغیر ها نام هایی برای محل ذخیره سازی داده ها می باشند که توسط برنامه های ما می توانند دستکاری شوند. در زبان برنامه نوسی C هر متغیر یک نوع خاصی دارد که اندازه و لایه آن در حافظه را مشخص می کند.
نام یک متغیر می تواند شامل حروف، اعداد، کاراکترها و خط زیر (_) باشد. یک نام متغیر باید با یک حرف یا یک خط زیر (_) آغاز شود. حروف بزرگ و کوچک با هم متفاوت هستند، زیرا زبان برنامه نویسی C، به حروف حساس است. در زیر انواع متغیرهای اصلی در زبان C را مشاهده می کنید:
ردیف | نوع و توضیحات |
1 | char یک مقدار عددی به صورت یک بایتی. |
2 | int طبیعی ترین اندازه عدد صحیح برای دستگاه. |
3 | float یک مقدار اعشاری. |
4 | double یک مقدار اعشاری با دقت دو برابر. |
5 | void عدم وجود نوع را نشان می دهد. |
در زبان برنامه نویسی C، می توانید انواع داده مختلفی را (مانند enum، pointer، array، struct و غیره) تعریف کنید. اما در این بخش فقط نوع متغیرهای اصلی مورد بررسی قرار می گیرند.
تعریف متغیر در زبان C
تعریف یک متغیر به کامپایلر زبان C می گوید که کجا و چه اندازه از حافظه برای ایجاد متغیر لازم است. در زبان C، یک متغیر به صورت زیر تعریف می شود:
1 | type variable_list; |
در Syntax بالا، منظور از type یک نوع متغیر معتبر در زبان C می باشد و منظور از variable_list هم اسم هایی است که برای متغیرها در نظر گرفته می شوند. این لیست می تواند شامل یک یا چند اسم باشد. در زیر چند نمونه از نحوه تعریف متغیر در زبان C را مشاهده می کنید.
1 2 3 4 | int i, j, k; char c, ch; float f, salary; double d; |
خط int i, j, k; متغیرهای i، j و k را تعریف می کند و همچنین به کامپایلر می گوید که متغیرهایی با اسامی i، j و k را از نوع int ایجاد کند.
متغیرها را می توان هنگام تعریف مقدار دهی کرد. برای این کار از علامت = استفاده می شود.
1 2 3 4 5 6 | type variable_name = value; چند مثال: extern int d = 3, f = 5; // declaration of d and f. int d = 3, f = 5; // definition and initializing d and f. byte z = 22; // definition and initializes z. char x = 'x'; // the variable x has the value 'x'. |
اعلان متغیر در زبان C
یک اعلان متغیر به کامپایلر اطمینان می دهد که یک متغیر با نوع و نام اعلان شده وجود دارد. بنابراین کامپایلر می تواند بدون نیاز به اطلاعات کاملی در مورد متغیر، به کامپایل برنامه ادامه دهد. تعریف متغیر در زمان کامپایل اهمیت پیدا می کند زیرا کامپایلر در زمان اتصال برنامه، به تعریف واقعی متغیرها نیاز دارد.
یک اعلان متغیر زمانی که شما از چندین فایل استفاده کنید و متغیر خود را در یک فایل خارجی تعریف کرده باشید، مفید است. با استفاده از کلمه کلیدی extern می توانید متغیر خود را در هر جایی تعریف کنید.
مثال
در مثال زیر متغیرها در بالا اعلان شده اند، اما در داخل تابع main تعریف و مقداری اولیه شده اند.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | #include <stdio.h> // Variable declaration: extern int a, b; extern int c; extern float f; int main () { /* variable definition: */ int a, b; int c; float f; /* actual initialization */ a = 10; b = 20; c = a + b; printf("value of c : %d \n", c); f = 70.0/3.0; printf("value of f : %f \n", f); return 0; } |
نتیجه کامپایل و اجرا کد بالا:
1 2 | value of c : 30 value of f : 23.333334 |
همان مفهوم در هنگام اعلان تابع اعمال می شود. ابتدا تابع در بالا اعلان می شود . سپس در هر جایی می تواند تعریف شود. مانند مثال زیر:
1 2 3 4 5 6 7 8 9 10 | // function declaration int func(); int main() { // function call int i = func(); } // function definition int func() { return 0; } |
Lvalue و Rvalue در C
در زبان برنامه نویسی C دو نوع عبارت داریم:
- Lvalue: عبارات Lvalue می توانند در هر دو طرف یک تساوی قرار بگیرند.
- Rvalue: عبارات Rvalue فقط می توانند در سمت راست یک تساوی قرار بگیرند.
متغیر ها از نوع Lvalue می باشند. بنابراین می توانند در هر دو طرف یک تساوی قرار بگیرند. اما اعداد از نوع Rvalue می باشند و از آن جایی که نمی توان به آن ها مقداری اختصاص داد، همیشه در سمت راست یک تساوی قرار می گیرند.
مثال زیر یک دستور معتبر می باشد:
1 | int g = 20; |
مثال زیر یک دستور نامعتبر می باشد:
1 | 10 = 20; |
هیچ نظری ثبت نشده است