局部变量作用域的问题
发布网友
发布时间:2022-05-01 00:23
我来回答
共3个回答
热心网友
时间:2022-06-21 08:17
局部变量的作用域是他的母括号,不是他下面的括号
for(int i=0;i<10;i++)
{
i在 { 前,你这样写就不冲突了
int main()
{
{
for(int i=0;i<10;i++)
{
cout<<i<<",";
}
}
cout<<endl;
for(int i=0;i<10;i++)
{
cout<<i<<",";
}
return 0;
}
{
cout<<i<<",";
}
热心网友
时间:2022-06-21 08:17
1、局部变量所占用的内存空间的分配和销毁,取决于编译器的实现,编译器在为了优化程序性能,可能有不同的策略来分配、释放内存。比如:VC编译器可能在函数入口处即分配这里的全部变量,GCC编译器也可能真的在定义处才分配。
2、你该探究的应该是这些局部变量的生命期。这个b\c\d\e 的生命期都是开始于定义变量的地方,终止于语句块结束的地方(对应的反花括弧处结束)
3、这是 C++ 的代码,C 的代码必须在函数开始处定义所有局部变量,以便于编译器为所有局部变量准备栈空间。
热心网友
时间:2022-06-21 08:18
把头文件改为#include <iostream.h>试试
我不太记得是C/C++