当前位置: 代码迷 >> C语言 >> 关于static的一个问题
  详细解决方案

关于static的一个问题

热度:312   发布时间:2007-04-03 17:04:27.0
关于static的一个问题
#include "stdio.h"
main()
{
int i,num;
num=2;
for(i=0;i<3;i++)
{
printf("\40: The num equal %d \n",num);
num++;
{
static int num=1; /*疑问在这里*/
printf("\40:The internal block num equal %d\n",num);
num++;
}
}
}
运行结果是:
: The num equal 2
:The internal block num equal 1
: The num equal 3
:The internal block num equal 2
: The num equal 4
:The internal block num equal 3

我想问,难道定义了static int num=1,后和全局定义的变量int num=2,两个没有任何影响吗?
搜索更多相关的解决方案: static  

----------------解决方案--------------------------------------------------------
当然没有影响,,存储的地方不一样,,,
----------------解决方案--------------------------------------------------------

因为局部变量会屏蔽全局变量的饿...所以..虽然他们的变量一样..但到了局部变量管辖的范围..全局变量就不起作用了..


----------------解决方案--------------------------------------------------------

o
谢谢大家,今天他=有收获了!
^_^


----------------解决方案--------------------------------------------------------
其实是两个方面:一个,局部变量屏蔽全局变量。还有一个就是static问题,在程序执行过程中static变量始终不释放,赋值仅仅在第一遍执行
----------------解决方案--------------------------------------------------------
  相关解决方案