请问,下面的程序中int fun(void)中count这个数是在变吗?为啥还说此赋值语句没....
旧帖重发:cry#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 结果很明显变了啊,有什么问题啊 凌风破浪 发表于 2015-5-4 11:07
结果很明显变了啊,有什么问题啊
int fun()里的count不是变了吗?那上面为啥说 此赋值语句从来没有执行过:handshake 实际上是执行了,只不过不是在 fun函数中执行的,程序加载的时候就执行好了 哦 谢了:lol: static int count = 10; //事实上此赋值语句从来没有执行过
这个不叫赋值语句,这个叫做初始化。
一个变量定义的时候对它进行“赋值”叫做“初始化”
页:
[1]