为何编程语言的都要定义数据类型

对于一个程序员来说,写代码的第一件是请,恐怕就是须要定义一些数据类型。而程序自己,就是对这些数据类型进行操做,有没有人思考过,为何每种语言编写的程序,开始都须要定义数据类型呢?程序员

如下面的C代码为例,咱们来讲明这个问题:算法

#include<stdio.h>

int main()
{
    int a=100;
    int b=200;

    double a1=10.1;
    double b1=10.2;

    a=a+b;

    a1=a1+b1;

    getchar();
    return 0;
}

这段代码很是简单,定义了四个数据,两个类型。你们看,a=a+b;和a1=a1+b1;这两个语句,几乎同样,那么,我问你,这两个语句,在编译时,编译器会用同一段代码来替换这两个语句吗?编程

显然不但是同一段代码,由于浮点数和整数,在计算机里面,使用了不一样的处理器,整数使用普通的CPU,而浮点数必须使用浮点运算器。因此,这两句话,产生的机器代码彻底不一样!编程语言

那么问题来了,编译器如何知道,在碰到两个数相加的时候,是使用浮点运算器的机器指令,仍是使用普通CPU的机器指令?此时,编译器就会检查进行加法操做的两个加数的数据类型,根据他们的数据类型,来肯定到底使用哪个运算器的机器代码。此时,数据类型定义的意义就凸显出来了。code

总结:get

经过上述简单的描述,咱们就可以清楚,任何编程语言(除了汇编,汇编只规定数据的字长),都会有本身的数据类型,数据类型背后,隐藏的是编译器或者解释器对数据处理方式的定义。知道了这个之后,咱们在定义数据类型的时候,就应该知道,咱们定义的这种数据类型,能够进行哪些操做,这些操做的规则是什么,这样咱们才算真正掌握了这个数据类型。编译器

更高级的语言,例如C++能够定义本身的数据类型和数据类型的算法,类的重载操做符就是一个例子。io

相关文章
相关标签/搜索