如C、C++、Java中
复制代码 代码如下:
// 显示声明 变量count,类型为int,占用空间大小各语言可能有所不同
int count;
又如JavaScript中
复制代码 代码如下:
// 显示声明 变量count,但不知其类型,也不知其占用空间大小
var count;
隐式声明 指通过某种默认协定的方法将变量名与类型绑定
如在Fortain中,一个以字母I、J、K、L、M或者N(或其对应小写)开始,它们被隐式的声明为Integer类型。否则为Real类型。
Javascript中
复制代码 代码如下:
// 赋值语句其实隐式的声明了变量count,类型为数字,占用8个字节(64位浮点格式)
// 所有隐式声明的变量默认都是全局变量,无论函数内外
count = 10;
隐式声明带来了些许的方便,但却被认为有损于程序的可读性,因为它可能会带来隐藏的错误,Bug。
Perl中也有隐式声明,但为了避免以上问题。它做了一些处理
1,以字符 $ 开头的默认为标量,可存放字符串和数字
2,以字符 @ 开头的默认为数组
3,以字符 % 开头的默认为一个散列结构(hash)
以上可以看到多数语言中要求变量都要显示声明,但Fortain、Perl、JavaScript和ML例外。
Fortain,JavaScript同时包含显示声明和隐式声明。