Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 3

C++ Променливи и типове данни

Съдържание
1. Идентификатори

2. Основни типове данни

3. Декларацията на променливите

4. Обхват на променливите

Нека разиграем следната ситуация: Запомнете числата 12 и 8. Сега ако умножим първото число по 3 и
разделим второто на 2, би трябвало да получим числата 36 и 4. На края ако разделим първото на второто,
ще получим 9.
Гореописаните сметки могат да бъдат реализирани на C++ с помощта на две променливи. Програмата би
изглеждала по следния начин (не се тревожете ако не разбирате всичко от програмата, това тепърва ще се
изясни):
#include <iostream>
using namespace std;
int main ()
{
int a, b; // декларация на две целочислени променливи
a = 12; // инициализиране на първата променлива
b = 8; // инициализиране на втората променлива
a = 3 * a; // умножаваме първото число по 3
b = 8 / 2; // разделяме второто число на 2
int result = a / b; // съхраняваме резултата в нова променлива
cout << result; // принтираме резултата в конзолата
return 0;
}
Всяка променлива се нуждае от уникално име, което да я различава от другите. В
примера, който дадохме по-горе, сме използвали a,b и result, но можем да именуваме променливите както
пожелаем (стига да отговарят на правилата, които ще въведем след малко).

Идентификатори
Идентификаторите се използват за именуване на променливи. Валиден идентификатор
е поредица от една или повече букви, цифри или долни черти (_). Не може да съдържа
– препинателни знаци, символи и празни пространства (space). Също така
идентификатора на променливата винаги трябва да започва с буква, никога не трябва
да започва с цифра. В някои случаи може да започва и с долна черта (_), но е най-добре
е да започва с буква.
Друго правило при определяне на идентификатор е да не съвпада с някоя ключова
дума от езика C++.
Такива ключови думи са:
alignas, alignof, and, and_eq, asm, auto, bitand, bitor, bool, break, case, catch, char, char16_t, char32_t, class,
compl, const, constexpr, const_cast, continue, decltype, default, delete, do, double, dynamic_cast, else, enum,
explicit, export, extern, false, float, for, friend, goto, if, inline, int, long, mutable, namespace, new, noexcept, not,
not_eq, nullptr, operator, or, or_eq, private, protected, public, register, reinterpret_cast, return, short, signed, sizeof,
static, static_assert, static_cast, struct, switch, template, this, thread_local, throw, true, try, typedef, typeid,
typename, union, unsigned, using, virtual, void, volatile, wchar_t, while, xor, xor_eq
Ключовите думи се отбелязват от повечето работни среди по специален начин, така че лесно можем да
забележим, ако сме използвали такава за нашата променлива.
C++ е чувствителен език. Това означава, че идентификаторите, написани с главни
букви, не са еквивалентни на други, написани с малки букви. Например променливата
sum не е същата като променливата Sum или SUM. Това са 3 различни идентификатора.

Основни типове данни


При декларацията на променливи в C++ трябва да се посочи типа данни, който желаем
да съхраняваме в променливата. Променливи от целочислен тип (int) например, не
могат да съхраняват стойности с плаваща запетая.
В следната таблица са представени основните типове данни в C++:
Тип Описание Обхват
char Използва се за символи или малки signed: -128 до 127
целочислени числа. unsigned: 0 до 255
int Използва се за целочислени числа. signed: -2147483648 до 2147483647
unsigned: 0 до 4294967295
short (int) short int или само short – като int, но с по- signed: -32768 до 32767
малък обхват. unsigned: 0 до 65,535
long (int) Сходно на int, но с обхват поне колкото на signed: -2147483648 до 2147483647
int или повече (зависи от компилатора). unsigned: 0 до 4 294 967 295
bool Булева стойност – приема една от две True или False
стойности.
float Числа с плаваща запетая. +/- 3.4e +/- 38 (~7 цифри)
double Двойна прецизност за числа с плаваща +/- 1.7e +/- 308 (~15 цифри)
запетая.

Забележете, че някои от типовете данни могат да бъдат signed и unsigned. Разликата е,


че signed могат да бъдат с положителни или отрицателни стойности, докато unsigned
могат да бъдат само положителни стойности (и нула). Предимството на unsigned е, че
можем да съхраняваме по-големи стойности, стига да сме сигурни, че те винаги са
положителни.
Ако не уточним какви точно да бъдат променливите, signed или unsigned, по подразбиране
повечето компилатори ще ги приемат като signed.

Декларацията на променливите
За да използваме променлива в C++, трябва първо да я декларирамe – това включва
определяне на идентификатора и типа данни. Синтаксисът на декларацията е следният:
типа_данни идентификатор;
Пример:

int myFirstInteger;
char myFirstCharacter;
Ако искаме да декларираме повече от една променлива от същия тип, може да ги
декларираме на един ред, отделяйки имената чрез запетаи:
char ch1, ch2, ch3;
Това е еквивалентно на:
char ch1;
char ch2;
char ch3;
Ако желаем да декларираме променлива, която да приема целочислени положителни
стойностти, не по-големи от 65 535, то декларацията би изглеждала така:
unsigned short int myInteger;
Един по-интересен тип променливи, които могат да съхраняват нечислови стойности,
по-дълги от един знак, са така наречените стрингове (англ. String).
За да декларираме и използваме променливи от този тип, трябва предварително да включим
допълнителната библиотека „string“ в нашата програма. Това става, както вече знаем от
предишния урок, посредством #include директивата.
// отпечатва „Hello String!“ с помощта на стрингове
#include <iostream>
#include <string>
using namespace std;
int main ()
{
string hellostring = „Hello String!“;
cout << hellostring;
return 0;
}

Обхват на променливите
Променливите могат да бъдат разделени на два основни типа по отношение на обхвата
им в програмата – локални и глобални. Глобалните променливи се декларират извън
всички функции, но могат да се използват/достъпват във всяка една от тях. За разлика
от тях локалните променливи се декларират в определена функция и важат само в нея.
Поради тази причина например е възможно да декларираме локални променливи с
еднакви имена, стига те да са в различни функции.

You might also like