首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

一个关于static关键字的小疑点

2012-04-10 
一个关于static关键字的小问题程序如下:C/C++ code#include stdio.hint fun(void){static int count 1

一个关于static关键字的小问题
程序如下:

C/C++ code
#include <stdio.h>int fun(void){    static int count = 10;      return count--;}int count = 1;int main(void){         printf("global\t\tlocal static\n");    for(; count <= 10; ++count)         printf("%d\t\t%d\n", count, fun());        return 0;}

执行结果如下:
global local static
1 10
2 9
3 8
4 7
5 6
6 5
7 4
8 3
9 2
10 1
问题如下:
1、程序编译结束,在运行之前,fun函数中的静态变量count已经初始化结束,那么静态存储区中静态局部变量count的初始值是0还是10,解释原因,thx
2、每次运行fun函数,事实证明count不会被赋值,那么为什么它不会被重复赋值,解释之,thx
3、全局变量和静态变量都是放在静态存储区中,此程序中两个变量count是如何被区分的,内核寻找这两个变量的时候是怎么加以辨别的,请解释之,thx

[解决办法]
1 10 语言规定
2 语言规定
3 作用域不同,编译器自己知道那个对应哪个。
[解决办法]
探讨

to 1L:
全局变量肯定不在栈中

热点排行