Darsliklar C Ma’lumot turlari (tiplar)

C C Ma’lumot turlari (tiplar)

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 turiqiymatning 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.