作者heyra ()
看板C_and_CPP
标题[问题] 为什麽答案会这样??? 请帮忙解释一下
时间Tue Nov 10 00:35:07 2009
#include <stdio.h>
int x = 2, y;
int useStatic (void);
void useGlobal(void);
int main(void )
{
int x = 5;
y = 1;
printf("%d %d\n", x, y++);
int y = useStatic();
{
useGlobal();
printf("%d %d\n", x, y);
}
x = useStatic() + y;
printf("%d %d\n", x, y);
return 0;
}
int useStatic ()
{
static int y;
printf("%d %d\n", x, ++y);
return y;
}
void useGlobal()
{
printf("%d %d\n", ++x, y);
}
跑出来答案为
5 1
2 1
3 2
5 1
3 2
3 1
为什麽第3行y的答案是2
不是1吗???
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 203.72.84.170
1F:推 dendrobium:y = 1; printf("%d %d\n", x, y++); // thus y is 2 11/10 00:39
2F:→ heyra:可是useStatic()不是return 1?int y=1? 对不起有点转不过来 11/10 00:47
3F:推 dendrobium:第三行是useGlobal() 11/10 01:06