动态、静态语言,强、弱类型语言
来源:互联网 发布:ios4邪恶福利软件 编辑:程序博客网 时间:2024/04/30 05:09
动态语言和静态语言
1.动态类型语言:是指在运行期间才去做数据类型检查的语言。在用动态语言编程时,不用给变量指定数据类型,该语言会在你第一次赋值给变量时,在内部将数据类型记录下来。Python和Ruby就是一种典型的动态类型语言;
2.静态类型语言:与动态类型语言刚好相反,它的数据类型检查发生在在编译阶段,也就是说在写程序时要声明变量的数据类型。C/C++、C#、Java都是静态类型语言的典型代表。
强类型语言和弱类型语言
C++是一门强静态类型的语言.
强类型: 变量/对象一定是有类型的, 且变量/对象的类型一旦确定,其类型不再允许更改,不同类型的变量/对象不允许赋值和初始化.
弱类型:变量/对象的类型概念很弱或者没有类型的概念,不同变量/对象的类型可以更改, 不同类型的变量/对象允许赋值赋值和初始化.
这里需要说明的是强制类型转换,C++的强制类型转换分为显示的和隐式的,C++的强制类型转换用于在不同类型的变量/对象间赋值和初始化,事实上是编译器在中间生成了临时对象,比如typeA a,typeB b,如果a = b合法,一定是存在typeB到typeA的转换,实际上是根据b生成了一个临时对象c(typeA类型),然后a = c.所以依然是同类型对象间的赋值.并不和C++是强类型语言冲突.
并不是强制类型转换一定能成功,关键是看”被转换的类”是否定义了到”目标类”的”转换代码”.这些都是程序员在设计类时自己完成的工作.内置类型的相关转换是已经设计好了的.
变量/对象的类型决定了,变量/对象可以执行的操作,如果某种类型不支持一些操作,则这种类型的变量/对象也不支持这些操作.
静态类型:类型检查在编译时进行. P.S. 编译的时候就知道每一个变量的类型,因为类型错误而不能做的事情是语法错误.因此,在用静态语言编程时,必须事先定义变量/对象的类型,以便让编译器在编译时就知道每个实体的具体类型.
动态类型:类型检查在运行时进行. P.S. 编译的时候不知道每一个变量的类型,因为类型错误而不能做的事情是运行时错误.因此,在用动态语言编程时,不用事先定义变量/对象的类型,该语言会在你第一次给变量/对象赋值时,自动记下它的类型.
0 0
- 动态、静态语言,强、弱类型语言
- 动态、静态语言,强、弱类型语言
- 动态、静态语言,强、弱类型语言
- 动态、静态语言,强、弱类型语言
- 静态语言、动态语言、强类型语言、弱类型语言
- 强类型,弱类型,静态,动态语言
- 强类型语言、弱类型语言、静态类型、动态类型
- 动态语言、动态类型语言、静态类型语言、强类型语言、弱类型语言
- 动态语言、动态类型语言、静态类型语言、强类型语言、弱类型语言
- 动态语言与静态语言、强类型与弱类型
- 静态/动态类型语言 & 强/弱类型语言
- 弱类型、强类型、动态类型、静态类型语言
- 强类型、弱类型、动态类型、静态类型语言
- 静态类型语言、动态类型语言、强类型语言、弱类型语言【转】
- 静态类型语言、动态类型语言、强类型语言、弱类型语言
- 四大类型的语言,动态,静态,强类型,弱类型
- 四大类型的语言,动态,静态,强类型,弱类型
- 强类型、弱类型、静态、动态语言定义
- c++find函数用法
- hdu 1005 Number Sequence 构造矩阵 + 矩阵快速幂
- 欢迎使用CSDN-markdown编辑器
- 遍历转换
- html基础
- 动态、静态语言,强、弱类型语言
- 使用wireshark捕获wifi包(linux)
- SDUTACM 数据结构实验之栈四:括号匹配
- c++ find()
- 遍历转换
- poj1166--The Clocks(高斯消元)
- java interface 的几点默认规则
- 由Docker的MySQL官方镜像配置的容器无法启动问题的解决办法
- &运算(与运算)和|运算(或运算)