Darsliklar C O`zgarmaslar

C C O`zgarmaslar

O’zgarmaslar (constant) — bir marta belgilangach, qayta o’zgartirib bo’lmaydigan qiymatlar. Ba’zi qiymatlar tabiatan doimiy: pi soni, soliq stavkasi, massiv hajmi. Ularni o’zgarmas qilish tasodifan o’zgartirib yuborishdan himoya qiladi va kod maqsadini aniqroq ifodalaydi. C’da o’zgarmasni yaratishning ikki usuli bor.

O’zgarmas (constant) — e’lon qilingandan so’ng qiymati o’zgarmaydigan qiymat. C’da u const kalit so’zi yoki #define direktivasi bilan yaratiladi.

const kalit so’zi

const bilan e’lon qilingan o’zgaruvchini o’zgartirishga urinish kompilyatsiya xatosiga olib keladi:

#include <stdio.h>

int main(void) {
    const double PI = 3.14159;
    const int KUNLAR = 7;

    printf("Pi: %.5f\n", PI);
    printf("Haftada %d kun\n", KUNLAR);
    return 0;
}
Pi: 3.14159
Haftada 7 kun

Agar keyin PI = 3; deb yozsangiz, kompilyator xato beradi. const o’zgaruvchi turga ega bo’lgani uchun xavfsizroq.

#define direktivasi

O’zgarmas yaratishning yana bir usuli — #define preprosessor direktivasi. U kompilyatsiyadan oldin matnni almashtiradi:

#include <stdio.h>

#define MAX 100
#define SAYT "UzbekDevs"

int main(void) {
    printf("Maksimal: %d\n", MAX);
    printf("Sayt: %s\n", SAYT);
    return 0;
}
Maksimal: 100
Sayt: UzbekDevs

#define MAX 100 — kompilyatsiyadan oldin kodda uchragan har bir MAX ni 100 ga almashtiradi. Diqqat: #define oxiriga nuqta-vergul qo’yilmaydi.

const va #define farqi

Ikki usulni jadvalda solishtiramiz:

Xususiyat const #define
Turi bor (masalan, int) yo’q (oddiy almashtirish)
Qachon ishlaydi kompilyatsiyada preprosessor bosqichida
Xavfsizligi yuqoriroq pastroq
Xatolarni tekshirish bor yo’q

Zamonaviy C’da ko’pincha const afzal ko’riladi, chunki u turga ega va xavfsizroq. #define esa massiv hajmi kabi joylarda hali ham keng ishlatiladi.

Nega o’zgarmas ishlatish kerak?

O’zgarmasning ikki muhim afzalligi bor: u xatoning oldini oladi va kodni o’qiladigan qiladi. Masalan, #define SOLIQ 0.12 ni bir joyda o’zgartirsangiz, u butun kodda yangilanadi. O’zgarmaslar odatda UPPER_CASE bilan yoziladi.

Xulosa

Bu bo’limda const va #define bilan o’zgarmas yaratish, ularning farqi va o’zgarmasning afzalliklarini ko’rib chiqdik. Zamonaviy C’da const afzal ko’riladi. Keyingi darsda operatorlarga o’tamiz.