关于static定义的一个问题

来源:百度知道 编辑:UC知道 时间:2024/06/08 08:37:22
#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,两个没有任何影响吗?
这个一个C的题目......要的天结果啊!
我总要弄懂吧?!

这两个num应该不是同一个变量来的,这两个num是放在内存的不同区域的。

按照你的定义,这对大括号里面使用的都是static num,这个括号之外的就是
int i,num; ,程序是不会乱的,就是人自己会搞乱,所以还是不要这样写吧。

{
static int num=1; /*疑问在这里*/
printf("\40:The internal block num equal %d\n",num);
num++;
}