码迷,mamicode.com
首页 > 其他好文 > 详细

强类型,弱类型,动态类型,静态类型

时间:2018-07-14 23:04:55      阅读:206      评论:0      收藏:0      [点我收藏+]

标签:声明变量   它的   使用   sid   特性   编译   ruby   否则   分享   

     “C and C++ are considered weakly typed since, due to type-casting, one can interpret a field of a structure that was an integer as a pointer.”

      我当前使用的开发语言为C/C++,为弱类型语言,主要因为:

1. 一些编程语言(例如C/C++)将指针暴露为数字值,并允许用户对它们执行算术运算。这些语言有时被称为“弱类型”,因为指针算法可用于绕过语言的类型系统

2. 偏向于容忍隐式类型转换。譬如说C语言的int可以变成double,及bool可以隐式转换为int

 

  技术分享图片

               主流语言类型分类图

  同时C/C++是静态类型,当然有人会说,C++的多态,不是也有运行时类型判定的特性(RTTI)吗,是的,C++有时候在运行的时候类型也是不知道的,会变化,需要临时判定,

但是即使是要判定也是在你规定好的小范围里变动(父类和派生类),所以总的来说C/C++为静态语言,编译时进行类型确定,否则编译器会报错

静态类型和动态类型解释大概如下:

1.动态类型语言:在运行期进行类型检查的语言,也就是在编写代码的时候可以不指定变量的数据类型,比如Python和Ruby

2.静态类型语言:它的数据类型是在编译期进行检查的,也就是说变量在使用前要声明变量的数据类型,这样的好处是把类型检查放在编译期,提前检查可能出现的类型错误,典型代表C/C++和Java


  综上,大体可以将C/C++归类为静态类型,弱类型语言 

强类型,弱类型,动态类型,静态类型

标签:声明变量   它的   使用   sid   特性   编译   ruby   否则   分享   

原文地址:https://www.cnblogs.com/blog-yejy/p/9311189.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!