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

     “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++归类为静态类型,弱类型语言 
posted @ 2018-07-14 22:35  还在  阅读(350)  评论(0编辑  收藏  举报