摘要:对于一个程序员来讲,写代码的第一件是请,恐怕就是需要定义一些数据类型。更高级的语言,例如可以定义自己的数据类型和数据类型的算法,类的重载操作符就是一个例子。
对于一个程序员来讲,写代码的第一件是请,恐怕就是需要定义一些数据类型。而程序本身,就是对这些数据类型进行操作,有没有人思考过,为什么每种语言编写的程序,开始都需要定义数据类型呢?
以下面的C代码为例,我们来说明这个问题:
#includeint 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的机器指令?此时,编译器就会检查进行加法操作的两个加数的数据类型,根据他们的数据类型,来确定到底使用哪一个运算器的机器代码。此时,数据类型定义的意义就凸显出来了。
总结:
通过上述简单的描述,我们就能够清楚,任何编程语言(除了汇编,汇编只规定数据的字长),都会有自己的数据类型,数据类型背后,隐藏的是编译器或者解释器对数据处理方式的定义。知道了这个以后,我们在定义数据类型的时候,就应该知道,我们定义的这种数据类型,可以进行哪些操作,这些操作的规则是什么,这样我们才算真正掌握了这个数据类型。
更高级的语言,例如C++可以定义自己的数据类型和数据类型的算法,类的重载操作符就是一个例子。
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/102063.html
摘要:平时在复习基础知识时,经常会遇到数据类型基础数据类型内置对象包装类型对象,检测数据类型时,用到的值,感觉都差不多,但是又有差异。值与数据类型关系对比下图,即可知值相较于基础数据类型少多 平时在复习JS基础知识时,经常会遇到JS数据类型、基础数据类型、内置对象、包装类型对象,检测数据类型时,用到的typeof值,感觉都差不多,但是又有差异。今天特地整理下,方便理解。 JS数据类型 基础数...
摘要:知识点闭包问题执行机制定时器线程理解构造函数内的方法与构造函数属性上方法的对比中都经历了什么深入理解中的属性和特性中的方法详解为什么编程语言的都要定义数据类型中与的区别轻松理解基本包装对象中数据类型内置对象包装类型对象关系基础之数组中的逻辑 JS知识点 JS hoist JS闭包问题 JS执行机制 JS定时器线程理解 构造函数内的方法与构造函数prototype属性上方法的对比 JS...
摘要:一旦有一方改变,要及时通知对方,否则就会出现问题。对于,主要处理高性能的传输,以及网络的错误和异常。这个框架是在协议中使用的。就是网络文件系统。唯一标识请求和回复。 【前五篇】系列文章传送门: 网络协议 14 - 流媒体协议:要说爱你不容易 网络协议 15 - P2P 协议:小种子大学问 网络协议 16 - DNS 协议:网络世界的地址簿 网络协议 17 - HTTPDNS:私人定制...
摘要:一旦有一方改变,要及时通知对方,否则就会出现问题。对于,主要处理高性能的传输,以及网络的错误和异常。这个框架是在协议中使用的。就是网络文件系统。唯一标识请求和回复。 【前五篇】系列文章传送门: 网络协议 14 - 流媒体协议:要说爱你不容易 网络协议 15 - P2P 协议:小种子大学问 网络协议 16 - DNS 协议:网络世界的地址簿 网络协议 17 - HTTPDNS:私人定制...
阅读 2328·2021-10-14 09:43
阅读 2387·2021-09-09 09:34
阅读 1563·2019-08-30 12:57
阅读 1163·2019-08-29 14:16
阅读 682·2019-08-26 12:13
阅读 3169·2019-08-26 11:45
阅读 2248·2019-08-23 16:18
阅读 2597·2019-08-23 15:27