帮我看一下这个编程题 我不明白为什么运行结构会是那样.
来源:学生作业帮 编辑:搜狗做题网作业帮 分类:综合作业 时间:2024/06/18 00:38:17
帮我看一下这个编程题 我不明白为什么运行结构会是那样.
#include
void func();
int n=1;
int main ()
{
static int a;
int b = -10;
cout
#include
void func();
int n=1;
int main ()
{
static int a;
int b = -10;
cout
![帮我看一下这个编程题 我不明白为什么运行结构会是那样.](/uploads/image/z/15604599-39-9.jpg?t=%E5%B8%AE%E6%88%91%E7%9C%8B%E4%B8%80%E4%B8%8B%E8%BF%99%E4%B8%AA%E7%BC%96%E7%A8%8B%E9%A2%98+%E6%88%91%E4%B8%8D%E6%98%8E%E7%99%BD%E4%B8%BA%E4%BB%80%E4%B9%88%E8%BF%90%E8%A1%8C%E7%BB%93%E6%9E%84%E4%BC%9A%E6%98%AF%E9%82%A3%E6%A0%B7.)
哪里不明白呀?
四个cout.
第一个之前:a=0,b=-10,n=1.这没什么不理解吧?
第二个之前:因为是在函数里,所以,a,b,n都先读函数里的,即:
a先为2,再加2,为4,b先为5,再加5,为10,没有定义n,全局变量里有为1,加12,为13.所以a=4,b=10,n=13;
第三个之前:a还是0,没变,第二步里变的a是func里的,不是main里的.
b同a一样,为-10,再加4,为-6.n因为在第二步里变了,所以在这里就是变后的值13.即:a=0,b=-6,n=13.
第四步之前:这里的a是函数里的,因为它是静态的,所以在第四步里的a继续第二步里的值,4,再加2为6,b不是静态的,所以b重新开始计算,先为5,再加5,为10.n是全局的,第三步时它为13,在这里继续为13,再加10,为23,函数里又加了12,为35.所以:a=6,b=10,c=35.
四个cout.
第一个之前:a=0,b=-10,n=1.这没什么不理解吧?
第二个之前:因为是在函数里,所以,a,b,n都先读函数里的,即:
a先为2,再加2,为4,b先为5,再加5,为10,没有定义n,全局变量里有为1,加12,为13.所以a=4,b=10,n=13;
第三个之前:a还是0,没变,第二步里变的a是func里的,不是main里的.
b同a一样,为-10,再加4,为-6.n因为在第二步里变了,所以在这里就是变后的值13.即:a=0,b=-6,n=13.
第四步之前:这里的a是函数里的,因为它是静态的,所以在第四步里的a继续第二步里的值,4,再加2为6,b不是静态的,所以b重新开始计算,先为5,再加5,为10.n是全局的,第三步时它为13,在这里继续为13,再加10,为23,函数里又加了12,为35.所以:a=6,b=10,c=35.