
4.3.3 显式地指定变量类型并初始化
要声明某个变量,比较好的写法应该是在声明变量时就初始化这个变量,或者说,给它指定初始值,例如type identifier1=value1;、type identifier2=value2;,或者:

其中的value可以是某个字面常量或某个已经声明过的变量。另外要注意,如果采用第二种形式来声明变量,那么应该给其中的每个变量都指定初始值。我们经常会忘记给其中的某个变量设定初始值,因此,还是采用第一种形式比较好。下面我们来看这样一段带有初始化的变量声明代码:

跟刚才那段代码类似,这段代码也通过适当的空格,让这些变量的类型及名称在垂直方向上对齐,同时对齐的还有它们的初始值。这样做是为了看上去能够整齐一些。虽然这不是强制要求,但一般来说,我们还是应该添加一些空格,让这几个部分能够对齐。
初始化也是赋值的一种形式,跟普通的赋值相比,初始化所赋的是初始值。我们通过=符号执行初始化赋值。
另外要注意,由于我们在声明变量时明确指定了变量的类型,因此,程序会把我们赋给该变量的值转换成这种类型,具体到本例来说,就是把相关的字面常量(literal constant),从这些常量本身的类型转换成接受赋值的那个变量所具备的类型。因此,下面这种写法虽然符合语法,但如果阅读代码的这位程序员已经有些疲惫了,那么可能会误以为这三个变量的类型都是字面常量的类型,而忽视了声明变量时所指定的那个类型double:

针对这三个变量所做的初始化操作用逗号(,)来分隔。虽然我们初始化了三个变量,但这仍然算作一条语句,因为这段代码只有一个分号(;)。我们会在第5章详细讲解这个话题。
如果把这三个变量的初始化操作分别写成三条语句,那么看起来会更加明确,虽然这不是强制要求,但一般来说,总是比合起来写在一条语句中好:

这样写让我们能够在每一条语句里面都明确地看出该变量的类型、标识符以及初始值。
说完了这种值可以变化的变量之后,我们该讲解另一种变量了,也就是一旦赋值就不能再修改的变量。这种变量叫作常变量(constant variable)。另外我们还要讲解字面常量。