Programowanie D - zmienne

Zmienna to nic innego jak nazwa nadana obszarowi pamięci, którym nasze programy mogą manipulować. Każda zmienna w D 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ż w D jest rozróżniana wielkość liter. W oparciu o podstawowe typy wyjaśnione w poprzednim rozdziale, będą następujące podstawowe typy zmiennych -

Sr.No. Typ i opis
1

char

Zwykle pojedynczy oktet (jeden bajt). To jest typ całkowity.

2

int

Najbardziej naturalny rozmiar liczby całkowitej dla maszyny.

3

float

Wartość zmiennoprzecinkowa o pojedynczej precyzji.

4

double

Wartość zmiennoprzecinkowa podwójnej precyzji.

5

void

Reprezentuje brak typu.

Język programowania D pozwala również na definiowanie różnych innych typów zmiennych, takich jak Enumeration, Pointer, Array, Structure, Union itp., Które omówimy w kolejnych rozdziałach. W tym rozdziale przyjrzyjmy się tylko podstawowym typom zmiennych.

Definicja zmiennej w D

Definicja zmiennej informuje kompilator, gdzie i ile miejsca 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 D, w tym char, wchar, 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 i 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;

Przykłady

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'.

Gdy zmienna jest zadeklarowana w D, zawsze jest ustawiona na swój „domyślny inicjator”, do którego można uzyskać dostęp ręcznie jako T.init gdzie T jest typem (np. int.init). Domyślnym inicjatorem dla typów całkowitych jest 0, dla wartości logicznych false, a dla liczb zmiennoprzecinkowych NaN.

Deklaracja zmiennej w D

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 deklaracji zmiennej w momencie linkowania programu.

Przykład

Wypróbuj następujący przykład, w którym zmienne zostały zadeklarowane na początku programu, ale są zdefiniowane i zainicjowane wewnątrz funkcji głównej -

import std.stdio; 
 
int a = 10, b = 10; 
int c;
float f;  

int main () { 
   writeln("Value of a is : ", a); 
   
   /* variable re definition: */ 
   int a, b; 
   int c; 
   float f;
   
   /* Initialization */ 
   a = 30; 
   b = 40; 
   writeln("Value of a is : ", a); 
   
   c = a + b; 
   writeln("Value of c is : ", c);  
   
   f = 70.0/3.0; 
   writeln("Value of f is : ", f); 
   return 0; 
}

Kiedy powyższy kod jest kompilowany i wykonywany, daje następujący wynik -

Value of a is : 10 
Value of a is : 30 
Value of c is : 70 
Value of f is : 23.3333

Lwów i Rwartości w D

Istnieją dwa rodzaje wyrażeń w D -

  • lvalue - Wyrażenie, które jest lwartością, może pojawić się po lewej lub prawej stronie przypisania.

  • rvalue - Wyrażenie będące wartością 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ższe oświadczenie jest ważne -

int g = 20;

Ale poniższa instrukcja nie jest prawidłową instrukcją i spowodowałaby błąd w czasie kompilacji -

10 = 20;