انواع متغیر و داده در زبان C (تعریف متغیر در زبان C/C++)

متغیر نام محل حافظه است که برای ذخیره داده استفاده می شود. مقدار متغیر قابل تغییر است و می تواند بارها مورد استفاده قرار بگیرد. استفاده از متغیر باعث میشود بتوانیم مکانی از حافظه را به آسانی نشان بدهیم و مقدار آن را شناسایی کنیم.
انواع داده در زبان C
انواع داده، نوع داده ای را که یک متغیر می تواند ذخیره کند مثل عدد صحیح، کاراکتر و … را مشخص می کنند.
دسته بندی | انواع داده |
---|---|
داده های پایه | int, char, float, double |
داده های مشتق | array, pointer, structure, union |
داده شمارشی | enum |
داده خالی | void |
انواع داده های زیر به زبان C وجود دارد. در زبان C داده ها میتوانند به صورت با علامت (signed) یا بدون علامت (unsigned) باشند. اندازه حافظه انواع داده های اساسی ممکن است با توجه به سیستم عامل 32 یا 64 بیتی باشد. بیایید انواع داده های اساسی را ببینیم. اندازه آن با توجه به معماری 32 بیتی داده می شود. از جدول زیر میتوان برای انواع متغیر در زبان C استفاده کرد.
نوع داده | اندازه حافضه | محدوده |
---|---|---|
char | 1 byte | −128 تا 127 |
signed char | 1 byte | −128 تا 127 |
unsigned char | 1 byte | 0 تا 255 |
short | 2 byte | −32,768 تا 32,767 |
signed short | 2 byte | −32,768 تا 32,767 |
unsigned short | 2 byte | 0 تا 65,535 |
int | 2 byte | −32,768 تا 32,767 |
signed int | 2 byte | −32,768 تا 32,767 |
unsigned int | 2 byte | 0 تا 65,535 |
short int | 2 byte | −32,768 تا 32,767 |
signed short int | 2 byte | −32,768 تا 32,767 |
unsigned short int | 2 byte | 0 تا 65,535 |
long int | 4 byte | -2,147,483,648 تا 2,147,483,647 |
signed long int | 4 byte | -2,147,483,648 تا 2,147,483,647 |
unsigned long int | 4 byte | 0 تا 4,294,967,295 |
float | 4 byte | |
double | 8 byte | |
long double | 10 byte |
تعریف متغیر در زبان C
بیایید نحوه ایجاد متغیر در زبان C را بررسی کنیم. یک تعریف متغیر به کامپایلر می گوید که کجا و چه میزان حافظه برای متغیر ایجاد کند. تعریف متغیر نوع داده را مشخص می کند و شامل لیستی از یک یا چند متغیر است.
type variable_list;
در خط بالا، به جای type باید نوع داده و به جای variable_list باید لیست داده های مورد نیازمان را بنویسیم. میتوانید در هر خط یک داده تعریف کنید یا در هر خط چند متغیر از یک نوع تعریف کنید. همچنین برای تعریف متغیر از انواع مختلف باید در خط های جداگانه متغیر ها را ایجاد کنید.
type باید یک نوع داده معتبر در زبان C باشد مثل char ، w_char ، int ، float ، double ، bool یا … و variable_list ممکن است متشکل از یک یا چند نام باشد که با ویرگول از هم جدا شده اند. در زیر چند نمونه متغیر تعریف شده به شکل صحیح را قرار دادیم.
int i, j, k; // تعریف 3 متغیر char c, ch; // تعریف 2 متغیر float f, salary; // تعریف 2 متغیر double d; // تعریف یک متغیر
خط اول متغیر های i ، j و k را تعریف می کند. این یعنی به کامپایلر دستور می دهد متغیرهایی به نام i ، j و k از نوع int ایجاد کند. متغیرها را می توان در زمان تعریف مقدار دهی اولیه کرد (مقدار اولیه را اختصاص داد). مقداردهنده اولیه شامل یک علامت مساوی و به دنبال آن یک عبارت ثابت به شرح زیر است :
type variable_name = value;
به جای value باید مقدار اولیه را وارد کنید. به طور مثال :
extern int d = 3, f = 5; int d = 3, f = 5; byte z = 22; char x = 'x';
اگر متغیر ها را مقدار دهی نکنید، متغیر ها به صورت NULL مقدار دهی میشوند یعنی همه بایت ها مقدار 0 را میگیرند.
نمونه کد تعریف متغیر با زبان C
به کد زیر دقت کنید:
#include <stdio.h> // تعریف متغیر ها extern int a, b; extern int c; extern float f; int main () { /* تعریف متغیر */ int a, b; int c; float f; /* مقدار دهی متغیر ها */ 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; }
وقتی کد بالا را کامپایل کنیم، نتیجه زیر را بدست می آوریم:
مقدار متغیر c : 30 مقدار متغیر f : 23.333334
lvalue و rvalue
در C دو نوع عبارت وجود دارد:
- lvalue: عبارتی که به مکان حافظه اشاره می کند را “lvalue” میگویند. یک lvalue ممکن است سمت چپ یا راست یک دستور ظاهر شود.
- rvalue – اصطلاح rvalue به مقدار داده ای گفته می شود که در برخی آدرس ها در حافظه ذخیره می شود. rvalue عبارتی است که نمی توانید مقداری به آن اختصاص دهید ، به این معنی که rvalue ممکن است در سمت راست نشان داده شود اما در سمت چپ نشان داده نشود.
متغیرها lvalues هستند و بنابراین ممکن است در سمت چپ یک دستور ظاهر شوند. حروف الفبا rvalues هستند و بنابراین ممکن است اختصاص داده نشوند و نمی توانند در سمت چپ ظاهر شوند. به گزاره های معتبر و نامعتبر زیر نگاهی بیندازید:
int g = 20; // معتبر 10 = 20; // نا معتبر - خطا