名字的作用域

编程 TIAN 82℃ 0评论

两年前老博客的文章

这是我之前编程犯下的一个错误。当然现在来看是很初级的错误。

作用域(scope)是程序的一部分,C++和Java语言中作用域以花括号{}分隔。

  • Java代码中在try语句里命名的变量之后不可用。

这段代码是错误的。在Java中,一旦使用了花括号{},就表示已经创建了新的作用域。包括if、else、while、for等。

上段代码中try内的变量i,出了try的块作用域后便无法访问了。正确的写法应该是:

此时的变量i在所有花括号外,拥有全局作用域。

  • 作用域嵌套

作用域中一旦声明了某个名字,它所嵌套着的所有作用域都能访问该名字,同时允许内层作用域中重新定义外层作用域已有的名字。考虑两段程序的输出:

程序输出100 45

因为for循环算嵌套的作用域,离开该作用域后失效。

程序输出:

[注]::在C++中被称作为域操作符,直接用在函数或者变量前,表示全局函数/变量。

转载请注明:老田博客 » 名字的作用域

喜欢 (0)
发表我的评论
取消评论

表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址