Dastur tuzish mobaynida, hosil bo‘ladigan natijalar ma’lum bir joyda saqlanishi lozim. Bu joy operativ xotiradir. Operativ xotira hajmi, dasturchilar uchun juda muhim hisoblanadi. Bundan ko‘rinib turibdiki, dasturchilar «xotira» so‘zini ishlatishsa, «operativ xotira» tushunilishi lozim. Bu xotirada qiymatlar(natijalar) ma’lum bir ism bilan saqlanishi lozim(bo‘lmasa kerakli qiymatni u yerdan qanday topasiz), bu ism dasturlashda «o‘zgaruvchi nomi» deyiladi.

Bu maqolamda, C++ dasturlash tilida o‘zgaruvchilar haqida gaplashamiz.  O‘zgaruvchilar — ma’lum bir nomga va tipga ega bo‘lib, o‘zida qandaydir qiymatlarni saqlash uchun ishlatiladi. Bu qiymatlar keyinchalik, o‘zgaruvchi nomi orqali chaqirib, ishlatilishi mumkin bo‘ladi.

Xotira bir necha logik qisimlarga bo‘linadi, bu qismlar yacheyka deb yuritiladi. Har bir yacheyka nomerlangan bo‘ladi va bu nomerlar xotira adresi deyiladi. Biz o‘rganayotgan o‘zgaruvchilar, bitta yoki bir necha xotira adresini egallashi mumkin bo‘ladi(albatta tipiga qarab). Har bir yacheyka 1 bayt o‘lchamida bo‘ladi.

C++ dasturlash tilida biror o‘zgaruvchi e’lon qilsangiz, albatta uning tipini ko‘rsatishingiz kerak bo‘ladi. Shu tip orqali kompilyator xotiradan nechta yacheyka ajratish kerakligini oldindan bilib oladi va shu joyni band qilib qo‘yadi. Agar int tipidagi o‘zgaruvchi e’lon qilsangiz, kompilyator xotiradan 4 bayt joyni band qilib qo‘yadi, toki bu o‘zgaruvchi bo‘shatilib, o‘chirib tashlamaguncha.

C++ dasturlash tilida asosan 3 xildagi tip ishlatiladi: butun sonlar, haqiqiy sonlar va simvol ko‘rinishidagi.

Butun sonlar musbat va manfiy raqamlardan tashkil topgan sonlardir, haqiqiy sonlar esa kasr ko‘rinishidagi musbat va manfiy sonlardir. Simvollar esa tushunarli, simvollardan tashkil topgan qiymatlardir. Quyida tiplarning to‘liq ro‘yxati (nomi, hajmi, qiymati)ni ko‘rishingiz mumkin.

variable

Ko‘rib turganingizdek, «unsignet» so‘zi o‘sha tipni barcha maksimum qiymatlarini qo‘shib, faqat musbat qiymatlarni qabul qila olar ekan. Ba’zi kompyuterlarda o‘zgaruvchi tiplari xotiradan xar hil yacheyka miqdorini olishi mumkin(kompyuter razryadiga qarab). O‘zgaruvchi xotiradan nechi baytini band qilishini aniq bilishi uchun, C++da  «sizeof» nomli funksiya mavjud. keling shu funksiyani misolda ko‘ramiz.

#include "stdafx.h"
#include <iostream>
using namespace std;
int _tmain(int argc, _TCHAR* argv[])
{
cout<<"bool - "<<sizeof(bool)<<"bayt"<<"\n";
cout<<"int - "<<sizeof(int)<<"bayt"<<"\n";
cout<<"long int - "<<sizeof(long int)<<"bayt"<<"\n";
cout<<"double - "<<sizeof(double)<<"bayt"<<"\n";
cout<<"float - "<<sizeof(float)<<"bayt"<<"\n";
cout<<"char - "<<sizeof(char)<<"bayt"<<"\n";
return 0;
}

Natija:

sizeof

Natijadan ko‘rinib turibdiki, bu funksiya baytlarni  aniq ko‘rsatib beradi.

Endi bu o‘zgaruvchilarni kod ichida qo‘llaymiz. Demak, bir nechta o‘zgaruvchilarni e’lon qilamiz va amallar bajaramiz.

#include "stdafx.h"
#include <iostream>
using namespace std;
int _tmain(int argc, _TCHAR* argv[])
{
int test1; test1 = 10;
short int test2=20;
long int test3, test4;
float test5, test6 = 1.5;test3 = test1+test2;
test4 = test3;
test5 = test6*2;cout <<"test1="<<test1<<"\n";
cout <<"test2="<<test2<<"\n";
cout <<"test3="<<test3<<"\n";
cout <<"test4="<<test4<<"\n";
cout <<"test5="<<test5<<"\n";
cout <<"test6="<<test6<<"\n";
return 0;
}

Natija:

sizeof

Agar o‘zgaruvchi tipi qiymatga mos kelmasa xatolik chiqadi. Shuning uchun bir son yoki simvol ishlatishdan oldin, o‘zgaruvchi tipini to‘g‘ri qo‘ying.

O‘zgaruvchi nomi sifatida harflar, sonlar, simvollar ishlatilishi mumkin. O‘zgaruvchi nomining dastlabki simvoli harf bo‘lishi lozim. Undan keyin C++ tilining xizmatchi so‘zlarini nom sifatida qo‘yish ham mumkin emas(if, while, cout).

C++ dasturlash tili registrni ham inobatga oladi, ya’ni katta kichik harflarning farqi bor. Agar o‘zgaruvchi nomi sifatida «test«, «Test«, «TEST» so‘zlaridan foydalanchangiz, bularning barchasi boshqa-boshqa o‘zgaruvchi hisoblanadi(katta-kichik harflar farq qilgani uchun).

O‘zgaruvchi haqidagi maqola hali tugagani yo‘q, keyingi maqolalarda yana shu o‘zgaruvchilar haqida gaplashamiz.