變數是什麼,但考慮到一個存儲區域,我們的程式可以操縱的名稱。在D語言中的各變數具有特定的類型,它決定了變數的記憶體的大小和佈局;能該記憶體記憶體儲的值的範圍;和設置操作,可以被應用到變數中。
變數的名稱可以由字母,數字和下劃線字元。它必須以字母或下劃線。大寫和小寫字母是不同的,因為D語言是區分大小寫的。根據這個基本類型在前面的章節中解釋的那樣,會有以下幾個基本變數類型:
Type | 描述 |
---|---|
char | 通常一個八位位元組(1位元組)。這是一個整數類型。 |
int | 最自然的機器的整數大小。 |
float | 單精確度浮點值。 |
double | 雙精度浮點值。 |
void | 表示不存在類型。 |
D編程語言還允許定義各種其他類型的變數,我們將覆蓋像枚舉,指針,數組,結構,聯合,等後面的章節對於本章中,我們只學習基本的變數類型。
在D語言中變數定義:
變數的定義是指,告訴編譯器在哪里和多少來創建存儲的變數。變數定義指定了數據類型,並且包含的該類型的一個或多個變數如下的列表:
type variable_list;
在這裏,類型必須是包括char, wchar, int, float, double, bool或任何用戶定義的對象等有效D語言的數據類型,並且variable_list可能包含由逗號分隔的一個或多個識別字名稱。一些有效的聲明如下所示:
int i, j, k; char c, ch; float f, salary; double d;
該行int i, j, k; 既聲明並定義了變數i,j和K;這指示編譯器創建一個 int類型的 i, j 和 k變數。
變數可以被初始化在他們的聲明中(分配一個初始值)。在初始化由一個等號後面的常量運算式如下:
type variable_name = value;
一些實例是:
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'.
對於沒有初始化的定義:具有靜態存儲變數與隱式初始化為NULL(所有位元組的值為0);所有其他變數的初始值是不確定的。
在D中的變數聲明:
變數聲明所提供的保證編譯器,一個變數與給定的類型和名稱的現有從而使編譯器進行進一步的編輯,而不需要對變數瞭解完整細節。變數聲明有其意義在編譯的時候,編譯器只需要實際的變數聲明在程式鏈接的時候。
示例
試試下麵的例子,其中的變數都在頂部被聲明,但他們已經定義並初始化主函數中:
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; }
讓我們編譯和運行上面的程式,這將產生以下結果:
Value of a is : 10 Value of a is : 30 Value of c is : 70 Value of f is : 23.3333
在D語言中左值和右值:
D中有兩種類型的運算式:
-
lvalue : 這是一個左值的運算式可能會出現無論是左值或右值。
-
rvalue : 這是一個右值運算式可以出現在賦值的右值而不是左值。
變數是左值,因此可能會出現在賦值的左值。數值常量是右值,所以不得轉讓,不能出現在左值。下麵是一個有效的語句:
int g = 20;
但以下情況不屬有效的語句,並會產生編譯時錯誤:
10 = 20;