Darsliklar C++ Konstanta

C++ C++ Konstanta

Konstanta — bu bir marta belgilangach, dastur davomida o’zgarmaydigan qiymat. Ba’zi qiymatlar tabiatan doimiy bo’ladi: pi soni, hafta kunlari soni, soliq stavkasi. Ularni konstanta qilish tasodifan o’zgartirib yuborishdan himoya qiladi va kod maqsadini aniqroq ifodalaydi.

Konstanta (const)e’lon qilinganda qiymati beriladigan va keyinchalik o’zgartirib bo’lmaydigan o’zgaruvchi. Uni o’zgartirishga urinish kompilyatsiya xatosiga olib keladi.

const kalit so’zi

Konstanta e’lon qilish uchun tur oldiga const qo’yiladi. Bunday qiymatni o’zgartirishga urinish kompilyator tomonidan darhol taqiqlanadi:

#include <iostream>
using namespace std;

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

    cout << "Pi: " << PI << endl;
    cout << "Haftada " << KUNLAR << " kun" << endl;
    return 0;
}
Pi: 3.14159
Haftada 7 kun

Agar dasturda PI = 3; deb yozsangiz, kompilyator “assignment of read-only variable” degan xato beradi va dasturni yig’maydi. Aynan shu himoya konstantaning asosiy foydasidir.

Nega konstanta ishlatish kerak?

Konstantaning ikki muhim afzalligi bor. Birinchidan, u xatoning oldini oladi — muhim qiymat tasodifan o’zgarmaydi. Ikkinchidan, u kodni o’qiladigan qiladi. Quyidagi misolni ko’ring:

#include <iostream>
using namespace std;

int main() {
    const double SOLIQ = 0.12;
    double narx = 50000;
    double soliqli = narx + narx * SOLIQ;

    cout << "Soliqli narx: " << soliqli << endl;
    return 0;
}
Soliqli narx: 56000

Bu yerda SOLIQ konstantasi kodning bir necha joyida ishlatilishi mumkin. Agar soliq stavkasi o’zgarsa, uni faqat bitta joyda tuzatasiz — bu katta loyihalarda bebaho.

const va oddiy o’zgaruvchi farqi

Ikkovining tub farqini jadvalda ko’rib olamiz:

Xususiyat Oddiy o’zgaruvchi Konstanta (const)
Qiymatini o’zgartirish Mumkin Mumkin emas
E’londa qiymat berish Ixtiyoriy Majburiy
Maqsadi O’zgaruvchan ma’lumot Doimiy qiymat

#define bilan makros konstanta

C++’da konstanta e’lon qilishning eski usuli ham bor — #define direktivasi. U kompilyatsiyadan oldin matnni almashtiradi:

#include <iostream>
using namespace std;

#define MAX 100

int main() {
    cout << "Maksimal qiymat: " << MAX << endl;
    return 0;
}
Maksimal qiymat: 100

Zamonaviy C++’da #define o’rniga const (yoki constexpr) tavsiya etiladi, chunki const turga ega va xavfsizroq. #define ni faqat eski kodlarda uchratasiz.

Xulosa

Bu bo’limda const bilan konstanta e’lon qilish, uning xato oldini olish va o’qiluvchanlik afzalliklari, oddiy o’zgaruvchidan farqi hamda #define direktivasini ko’rib chiqdik. Doimiy qiymat uchun doim konstanta ishlating. Keyingi darsda ma’lumot turlari — C++ turlar tizimiga chuqur kirib boramiz.