有关作用域问题

lq651659889 2008-11-13 10:37:43
在for( , , )
{
int a;
a=a*10


}
但退出for循环时是不是就没了.在后面的语句中就不能用a了呢?
...全文
76 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
xhs_lh04 2008-11-14
  • 打赏
  • 举报
回复
标准C/C++里
{ }块中变量的作用域只仅在块中
deerwin1986 2008-11-14
  • 打赏
  • 举报
回复
6楼说得不确切 只在VC6中是这样的 是对C++标准的不完全支持的结果
在后来的VS和GCC中FOR中声明的变量都是块作用域内的 出了块就不能使用了
johnelf 2008-11-14
  • 打赏
  • 举报
回复
恩那
weidong0210 2008-11-14
  • 打赏
  • 举报
回复
恩 对
vcgaoshou 2008-11-14
  • 打赏
  • 举报
回复
在for( , , )
{
int a;
a=a*10


}
a作用域在{}块内,出了{}就不存在了?
for( int a=1;; )
{
int a;
a=a*10 }
出了{}a仍存在

yihan7h 2008-11-14
  • 打赏
  • 举报
回复
无论是否加static ,在循环体外均不能再引用变量a

static分配在静态存储区,作用域仅仅限于声明该变量的函数内部。在程序

整个运行期间都不释放,生存期贯穿于程序运行的整个过程。

static静态局部变量在编译时赋初值,即只赋初值一次;

如果在定义局部变量时不赋初值的话:

static静态局部变量,编译时自动赋初值0(对数值型变量)或空字符(对字符变量)。
hai040 2008-11-14
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 lq651659889 的回复:]
如果在里面定义一个static int a呢?情况是不是一样.
[/Quote]
static只影响生存期
  • 打赏
  • 举报
回复
[Quote=引用楼主 lq651659889 的帖子:]
在for( , , )
{
int a;
a=a*10


}
但退出for循环时是不是就没了.在后面的语句中就不能用a了呢?
[/Quote]

你说的很对。

如果为Static的话,值虽然存在,也是不可以用的。
LZ,其实你完全可以自己写几行代码试一下,或是去看书。
lq651659889 2008-11-14
  • 打赏
  • 举报
回复
如果在里面定义一个static int a呢?情况是不是一样.
once_and_again 2008-11-14
  • 打赏
  • 举报
回复
template <class _CharT> class char_traits
: public __char_traits_base<_CharT, _CharT>
{};

// Specialization for char.

__STL_TEMPLATE_NULL class char_traits<char>
: public __char_traits_base<char, int>
xxgamexx 2008-11-14
  • 打赏
  • 举报
回复
不一定用 for

用 {}也可以

int main()
{
int a=10;
{
int a=12;
cout<<a;
}
cout<<a;
}
cyj626 2008-11-14
  • 打赏
  • 举报
回复
试下啊
帅得不敢出门 2008-11-13
  • 打赏
  • 举报
回复
嗯 作用域在{}中

64,654

社区成员

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

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