变量是什么,但考虑到一个存储区域,我们的程序可以操纵的名称。在D语言中的各变量具有特定的类型,它决定了变量的存储器的大小和布局;能该存储器内存储的值的范围;和设置操作,可以被应用到变量中。
变量的名称可以由字母,数字和下划线字符。它必须以字母或下划线。大写和小写字母是不同的,因为D语言是区分大小写的。根据这个基本类型在前面的章节中解释的那样,会有以下几个基本变量类型:
Type | 描述 |
---|---|
char | 通常一个八位字节(1字节)。这是一个整数类型。 |
int | 最自然的机器的整数大小。 |
float | 单精度浮点值。 |
double | 双精度浮点值。 |
void | 表示不存在类型。 |
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);所有其他变量的初始值是不确定的。
变量声明所提供的保证编译器,一个变量与给定的类型和名称的现有从而使编译器进行进一步的编辑,而不需要对变量了解完整细节。变量声明有其意义在编译的时候,编译器只需要实际的变量声明在程序链接的时候。
试试下面的例子,其中的变量都在顶部被声明,但他们已经定义并初始化主函数中:
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中有两种类型的表达式:
lvalue : 这是一个左值的表达式可能会出现无论是左值或右值。
rvalue : 这是一个右值表达式可以出现在赋值的右值而不是左值。
变量是左值,因此可能会出现在赋值的左值。数值常量是右值,所以不得转让,不能出现在左值。下面是一个有效的语句:
int g = 20;
但以下情况不属有效的语句,并会产生编译时错误:
10 = 20;