有以下程序    #include<iostream>    int i=0;    void fun( )    {    {       static int i=1;       Std::cout<<i++<<’,’;       }       

admin2017-10-17  26

问题 有以下程序    #include<iostream>    int i=0;    void fun( )    {    {       static int i=1;       Std::cout<<i++<<’,’;       }       Std::cout<<i<<’,’;       }    int main( )    {    fun();fun();    return O;    }    程序执行后的输出结果是

选项 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。
转载请注明原文地址:https://kaotiyun.com/show/YPAp777K
0

最新回复(0)