Ma’lumot turlari (tiplar) — C’ning poydevoridagi eng muhim tushunchalardan biri. C qat’iy tipizatsiyalangan til: har bir o’zgaruvchi aniq turga ega bo’lishi shart. Tur qiymat qancha xotira egallashini va u ustida qanday amallar bajarilishini belgilaydi. C’da turlar mashina darajasiga juda yaqin.
Ma’lumot turi — qiymatning tabiatini, xotiradagi hajmini va unga ruxsat etilgan amallarni belgilaydigan tasnif. C’da asosiy turlar: int, float, double, char.
Asosiy turlar
C’ning asosiy turlarini va ular egallaydigan taxminiy hajmni jadvalda ko’ramiz:
| Tur | Hajmi | Nima saqlaydi | Format |
|---|---|---|---|
int |
4 bayt | butun son | %d |
float |
4 bayt | kasr son | %f |
double |
8 bayt | aniqroq kasr son | %lf |
char |
1 bayt | bitta belgi | %c |
long |
8 bayt | katta butun son | %ld |
Diqqat: C’da alohida string turi yo’q — matn char massivi sifatida saqlanadi (buni satrlar darsida ko’ramiz).
Turlarni amalda ko’rish
Har bir turni e’lon qilib, natijasini kuzatamiz:
#include <stdio.h>
int main(void) {
int yosh = 26;
double narx = 15000.75;
char daraja = 'A';
printf("Yosh: %d\n", yosh);
printf("Narx: %.2f\n", narx);
printf("Daraja: %c\n", daraja);
return 0;
}
Yosh: 26
Narx: 15000.75
Daraja: A
Har bir tur o’z format belgisi bilan chiqarildi: %d — butun, %.2f — kasr, %c — belgi.
Turlar hajmini o’lchash — sizeof
Har bir tur qancha bayt egallashini sizeof operatori aniq ko’rsatadi:
#include <stdio.h>
int main(void) {
printf("int: %zu bayt\n", sizeof(int));
printf("double: %zu bayt\n", sizeof(double));
printf("char: %zu bayt\n", sizeof(char));
return 0;
}
int: 4 bayt
double: 8 bayt
char: 1 bayt
Bu ma’lumot muhim: C’da xotira bilan bevosita ishlaganingizda, har bir tur qancha joy egallashini bilish zarur.
Signed va unsigned
C butun sonlar uchun ikki variant beradi: signed (musbat va manfiy) va unsigned (faqat musbat, ammo kattaroq oraliq):
#include <stdio.h>
int main(void) {
unsigned int son = 4000000000; // faqat musbat, katta oraliq
printf("%u\n", son);
return 0;
}
4000000000
unsigned manfiy sonlarni saqlamaydi, evaziga ikki barobar kattaroq musbat sonni saqlaydi. Bu xotirani samarali ishlatishda foydali. %u — unsigned son uchun format belgisi.
Xulosa
Bu bo’limda C’ning asosiy turlarini (int, double, char), format belgilarini, sizeof bilan hajmni o’lchashni va signed/unsigned farqini ko’rib chiqdik. C’da tur mashina darajasiga juda yaqin. Keyingi darsda identifikator — nomlash qoidalariga o’tamiz.