帮我看一下这个编程题 我不明白为什么运行结构会是那样.#includevoid func();int n=1;int main (){static int a;int b = -10;cout

来源:学生作业帮助网 编辑:作业帮 时间:2024/11/29 19:43:00
帮我看一下这个编程题 我不明白为什么运行结构会是那样.#includevoid func();int n=1;int main (){static int a;int b = -10;cout
xSn@K$Bxl[lJH&IxDQH"JRk0/Όq!겋n3{ΐʥ=K֭bv]=bk6z_-zخS낵؞cijjs3hSk}Y#pQPy]02;ɬW 5"o|6pH ]Qd樐OV`\kŦ@U/U'wKtpn\B~8N^R-M.w:n!|gURZ5u*!}跾 lYtw98nkIkF;$%<VL# NNgԿmAA8)ɧ>"t}4QhBm<ɓIWj1t)#& I) 1De we&bp"-}jAm{CX'͚&C\wVe"dHg[=H'nn" @$Kt!p v,)-j~h0>3gMRsҥ' uTS0ɠl|p:E ћ UDs&,5JPW%2|Ѹ" (2*qN3oU(

帮我看一下这个编程题 我不明白为什么运行结构会是那样.#includevoid 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

帮我看一下这个编程题 我不明白为什么运行结构会是那样.#includevoid func();int n=1;int main (){static int a;int b = -10;cout
哪里不明白呀?
四个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.