函数作用域,与块作用域区别何在呢?函数本身不就是一个块吗?

lzxlzx777 2009-09-08 02:37:59
函数作用域,与块作用域区别何在呢?函数本身不就是一个块吗?

函数和块有区别吗?
比如 :
int main()
{
.....
int a=0;
}
这是一个函数,变量a就是函数作用域,同时两个花括号包含的是一个块,所以同时,a变量也是块作用域。

有区别吗?
...全文
283 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
wxdcxp 2009-09-09
  • 打赏
  • 举报
回复
补充一句
块作用域是在{ }里面的
wxdcxp 2009-09-09
  • 打赏
  • 举报
回复

#include <stdio.h>
int main()
{
{
int i = 0; //这里的i的作用域只在花刮号里才有作用。叫块作用域
printf("%d\n",i);
}
int i = 1;
printf("%d\n",i);
return 0;
}


输出的结果是0
1

#include <stdio.h>
int main()
{

int i = 0;
printf("%d\n",i);
int i = 1;
printf("%d\n",i);
return 0;
}

上面那段代码,在编译时会提示错误,报告i重复定义了。希望通过这两段代码对你会有启发
lzxlzx777 2009-09-08
  • 打赏
  • 举报
回复
up
  • 打赏
  • 举报
回复
之前谁问了个for的块。
就不是函数啊
baihacker 2009-09-08
  • 打赏
  • 举报
回复
...标准上明确写着只有label...
丢在里面,到处都以用。
lzxlzx777 2009-09-08
  • 打赏
  • 举报
回复
标号可以放在引用它的后面,这是核心思想吗?
baihacker 2009-09-08
  • 打赏
  • 举报
回复
{

for (...)
for (...)
{
if () goto the_end;
}


the_end:;
}
lzxlzx777 2009-09-08
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 baihacker 的回复:]
在C++中,只有label才具有函数作用域.
a这个变量只是从声明点开始,到}
[/Quote]
为什么,请明示,这种说法好象才是对的。
一个函数就是一个块,只不过块中可以有小块。
但是函数作用域,应该有特别的说法,我记不清了。有点模糊的印象。
baihacker 2009-09-08
  • 打赏
  • 举报
回复
在C++中,只有label才具有函数作用域.
a这个变量只是从声明点开始,到}
taodm 2009-09-08
  • 打赏
  • 举报
回复
再自己看看自己的主标题。
lzxlzx777 2009-09-08
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 taodm 的回复:]
可是,块不一定是函数啊。
[/Quote]
这么说,块作用域一定小于函数作用域,对吗?
taodm 2009-09-08
  • 打赏
  • 举报
回复
可是,块不一定是函数啊。

33,317

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 新手乐园
社区管理员
  • 新手乐园社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧