简单问题求助:关于作用于。谢谢!

mre 2003-09-13 10:28:00
请问怎么会输出的是1 呢?
在main函数中定义了i,那么前面定义的那个应该是不可见的吧?谢谢!

代码如下:
int i=1;
void func();
void main()
{
int i = 0;
func();
}
void func() {

cout << i;
}
...全文
48 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
mre 2003-09-13
  • 打赏
  • 举报
回复
有道理:现在想来亦是如此,如果fun 能自动访问main里的变量,那还要函数的参数干什么?
多谢各位指教!!
njtu 2003-09-13
  • 打赏
  • 举报
回复
//这样看就明白了
int i=1;
void func() {

cout << i;
}

main里的i和这个没关系,那是局部变量。
zhukeke 2003-09-13
  • 打赏
  • 举报
回复
不会。函数只在自己的定义域和全局定义域找变量。
设想func()函数是微软公司编写的寻找Windows版本号的函数,它提供了你这一函数(甚至是源代码),你当然可以在你的程序main()中调用func()函数来确定你的机子的Windows版本。但微软公司编写func()的时候会到你的main()中找变量吗?
mre 2003-09-13
  • 打赏
  • 举报
回复
fun 里没有不在main 里面找?
zhukeke 2003-09-13
  • 打赏
  • 举报
回复
在函数main()中当然是全局i不可见。但在函数func()中并没有局部变量i,自然只能看见全局i.

64,685

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

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