关于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变量始终不释放,赋值仅仅在第一遍执行
----------------解决方案--------------------------------------------------------