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

Posted blog-yejy

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了强类型,弱类型,动态类型,静态类型相关的知识,希望对你有一定的参考价值。

     “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++归类为静态类型,弱类型语言 

以上是关于强类型,弱类型,动态类型,静态类型的主要内容,如果未能解决你的问题,请参考以下文章

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

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

动态语言,静态语言,强类型定义语言,弱类型定义语言

强类型弱类型动态类型静态类型语言

静态语言与动态语言,强类型语言与弱类型语言

动态语言 静态语言 强类型语言 弱类型语言