D語言變量
變量是什麼,但考慮到一個存儲區域,我們的程序可以操縱的名稱。在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;