Typy zmiennych C ++
Zmienna zapewnia nam nazwane miejsce do przechowywania, którym nasze programy mogą manipulować. Każda zmienna w C ++ ma określony typ, który określa rozmiar i układ pamięci zmiennej; zakres wartości, które mogą być przechowywane w tej pamięci; oraz zestaw operacji, które można zastosować do zmiennej.
Nazwa zmiennej może składać się z liter, cyfr i znaku podkreślenia. Musi zaczynać się od litery lub podkreślenia. Wielkie i małe litery są różne, ponieważ C ++ rozróżnia wielkość liter -
Istnieją następujące podstawowe typy zmiennych w C ++, jak wyjaśniono w ostatnim rozdziale -
Sr.No | Typ i opis |
---|---|
1 | bool Przechowuje wartość true lub false. |
2 | char Zwykle pojedynczy oktet (jeden bajt). To jest typ całkowity. |
3 | int Najbardziej naturalny rozmiar liczby całkowitej dla maszyny. |
4 | float Wartość zmiennoprzecinkowa o pojedynczej precyzji. |
5 | double Wartość zmiennoprzecinkowa podwójnej precyzji. |
6 | void Reprezentuje brak typu. |
7 | wchar_t Szeroki typ znaków. |
C ++ pozwala również na zdefiniowanie różnych innych typów zmiennych, które omówimy w kolejnych rozdziałach, takich jak Enumeration, Pointer, Array, Reference, Data structures, i Classes.
W poniższej sekcji opisano, jak definiować, deklarować i używać różnych typów zmiennych.
Definicja zmiennej w C ++
Definicja zmiennej informuje kompilator, gdzie i ile pamięci ma utworzyć dla zmiennej. Definicja zmiennej określa typ danych i zawiera listę co najmniej jednej zmiennej tego typu w następujący sposób -
type variable_list;
Tutaj, type musi być prawidłowym typem danych C ++, w tym char, w_char, int, float, double, bool lub dowolny obiekt zdefiniowany przez użytkownika itp. oraz variable_listmoże składać się z jednej lub więcej nazw identyfikatorów oddzielonych przecinkami. Tutaj pokazano kilka ważnych deklaracji -
int i, j, k;
char c, ch;
float f, salary;
double d;
Linia int i, j, k;zarówno deklaruje, jak i definiuje zmienne i, j oraz k; co instruuje kompilator, aby utworzył zmienne o nazwach i, j oraz k typu int.
Zmienne można zainicjować (przypisać wartość początkową) w ich deklaracji. Inicjator składa się ze znaku równości, po którym następuje stałe wyrażenie w następujący sposób -
type variable_name = value;
Oto kilka przykładów:
extern int d = 3, f = 5; // declaration of d and f.
int d = 3, f = 5; // definition and initializing d and f.
byte z = 22; // definition and initializes z.
char x = 'x'; // the variable x has the value 'x'.
Dla definicji bez inicjatora: zmienne ze statycznym czasem trwania są niejawnie inicjowane z wartością NULL (wszystkie bajty mają wartość 0); początkowa wartość wszystkich innych zmiennych jest niezdefiniowana.
Deklaracja zmiennej w C ++
Deklaracja zmiennej zapewnia kompilatorowi, że istnieje jedna zmienna o podanym typie i nazwie, dzięki czemu kompilator przechodzi do dalszej kompilacji bez konieczności posiadania pełnych szczegółów na temat zmiennej. Deklaracja zmiennej ma swoje znaczenie tylko w momencie kompilacji, kompilator potrzebuje rzeczywistej definicji zmiennej w momencie linkowania programu.
Deklaracja zmiennej jest przydatna, gdy używasz wielu plików i definiujesz swoją zmienną w jednym z plików, który będzie dostępny w momencie łączenia programu. Będziesz używaćexternsłowo kluczowe, aby zadeklarować zmienną w dowolnym miejscu. Chociaż możesz deklarować zmienną wiele razy w swoim programie C ++, ale można ją zdefiniować tylko raz w pliku, funkcji lub bloku kodu.
Przykład
Wypróbuj poniższy przykład, w którym zmienna została zadeklarowana u góry, ale została zdefiniowana w funkcji głównej -
#include <iostream>
using namespace std;
// Variable declaration:
extern int a, b;
extern int c;
extern float f;
int main () {
// Variable definition:
int a, b;
int c;
float f;
// actual initialization
a = 10;
b = 20;
c = a + b;
cout << c << endl ;
f = 70.0/3.0;
cout << f << endl ;
return 0;
}
Kiedy powyższy kod jest kompilowany i wykonywany, daje następujący wynik -
30
23.3333
Ta sama koncepcja dotyczy deklaracji funkcji, w której podajesz nazwę funkcji w momencie jej deklaracji, a jej rzeczywistą definicję można podać gdziekolwiek indziej. Na przykład -
// function declaration
int func();
int main() {
// function call
int i = func();
}
// function definition
int func() {
return 0;
}
Lvalues i Rvalues
W C ++ istnieją dwa rodzaje wyrażeń -
lvalue- Wyrażenia odnoszące się do miejsca w pamięci nazywane są wyrażeniem „l-wartość”. Wartość l może pojawić się po lewej lub prawej stronie przypisania.
rvalue- Termin rvalue odnosi się do wartości danych przechowywanych pod jakimś adresem w pamięci. Wartość r to wyrażenie, któremu nie można przypisać wartości, co oznacza, że wartość r może pojawić się po prawej, ale nie po lewej stronie przypisania.
Zmienne to lvalues, więc mogą pojawiać się po lewej stronie przydziału. Literały numeryczne są wartościami r, więc nie można ich przypisywać i nie mogą pojawiać się po lewej stronie. Poniżej znajduje się prawidłowe oświadczenie -
int g = 20;
Ale poniższa instrukcja nie jest prawidłową instrukcją i spowodowałaby błąd w czasie kompilacji -
10 = 20;