《交互式程序设计 第2版》一2.3.3 类型转换

简介:

本节书摘来华章计算机《交互式程序设计 第2版》一书中的第2章 ,第2.3.3节,Joshua Noble 著 毛顺兵 张婷婷 陈宇 沈鑫 任灿江 译更多章节内容可以访问云栖社区“华章计算机”公众号查看。

2.3.3 类型转换

如果你手头上有一个整数,却要把它当成浮点数来使用,该怎么办呢?这时你可以使用“类型转换”,也就是把数据从原来的类型变成你所要使用的类型。
Processing、Arduino和C++的类型转换都是一样的,如下:

int i = 5; 
float f = (float)i; // float变成了浮点值5.0

为什么不可以像这样:

float f = i;

把i的值直接赋给f呢?把数据分为各种类型,就是为了阻止不同类型数据之间的直接赋值。知道了数据的类型,就可以确定它所需要的存储空间和用法。以上最后一行代码引起的错误可以通过数据类型转换解决。变量一旦定义,其类型就无法改变。在这个例子里,i永远是整型,若你希望把它作为浮点数使用,就要做类型转换,这并不复杂。接下来的例子里会用到字符型,因为字符型实在是太基本的数据类型了。例如,如果你要把一个字符型变量转为浮点型,再转为字符型,可以采用以下的做法:

char ch = 'f'; 
int fAsInt = (int)ch;// fAsInt的值是102 
char newChar = char(fAsInt); // newChar的是字符 'f'

需要注意,不能对数组进行类型转换:

char[] foo = {'a', 'b', 'c', 'd'}; 
int[](foo); // 错误

如果想对数组进行任何类型方面的转换,就要对它的元素进行操作。在2.4节有关循环的内容中我们会解决这个问题。现在我们看这两行代码:

char[] foo = {'a', 'b', 'c', 'd'}; 
int i = int(foo[0]);

以上代码创建了一个字符数组,并且把其中一个元素转换为整型。

相关文章