C语言学习指南:从规范编程到专业级开发
上QQ阅读APP看书,第一时间看更新

4.2 选用合适的类型来表示数据值

计算机程序中的每个值都有相关的类型。这个类型可以根据它在程序代码里面的用法或写法来推断,也可以由你(也就是编写这款程序的程序员)明确地指定。C语言里的值总是有其类型,这个类型可以由C语言自动地(也叫作隐式地)推断出来,或者由开发者明确地(也叫作显式地)指定。

字面值的类型会由系统自动推断。字面值是程序代码里的一串文本,这串文本表示的是一种会由编译器在编译期(也就是在它编译程序时)自动判断的值。字面值绝不会发生变化,它是固定写在程序代码中的。

如果你明确指定了某个值的类型,那么编译器就会给该值设定这样的类型。然而这样一个值以后还可以转化成另一种类型,这种转化可能是在使用该值的过程中自动发生的,也可能是开发者通过类型转换操作[1](typecasting)明确执行的。

因此,一说到值,我们就应该立刻想到它的类型,因为这个类型不仅决定了C语言如何解读该值,而且还决定了它的有效取值范围。

看到某个值,我们就该问:这个值的类型是什么?看到某个类型,我们则应该问:这个类型能取哪些值?如果某个变量是这种类型,那么我们还要问:这个变量目前的值是什么?以后学习循环与数组时,这种思考方式是相当重要的。

[1] 为了与自动转换(或者称为隐式转换)相对照,这种明确的(或者说显式的)类型转换,有时也叫作强制类型转换。——译者注