A-A+

有以下程序 #include <iostream> int i = 0; void fun(

2022-08-06 02:20:44 问答库 阅读 174 次

问题详情

有以下程序 #include <iostream> int i = 0; void fun() { { static int i = 1; std::cout<<i++<<","; } std::cout<<i<<","; } int main() { fun(); fun(); return 0; } 程序执行后的输出结果是
A.1,2,1,2,
B.1,2,2,3,
C.2,0,3,0,
D.1,0,2,0,请帮忙给出正确答案和分析,谢谢!

参考答案

正确答案:D
解析:本题考核变量的作用域、生存周期和存储类别(自动、静态、存储器、外部)。题中即定义全局变量i,又在函数fun内部定义了局部静态变量i,当进入函数fun里面的大括号时,局部静态变量i有效,所以输出1,然后局部静态变量i加1,出了里面的大括号后,全局变量i有效,所以输出0。同理,第二次调用fun后,输出2和0。

考点:程序