A-A+
若有如下程序: void sub() { static int x=8; x/=2;prin
问题详情
若有如下程序: void sub() { static int x=8; x/=2;printf("%d",x); } main() { int m; for(m=0;m<2;m++) sub();} 则程序运行后的输出结果是【 】.
请帮忙给出正确答案和分析,谢谢!
参考答案
正确答案:42
主函数中的for循环循环两次,即函数sub()被调用两次。在sub()中x被定义为静态整型变量,当调用函数sub()完毕返回主函数,x中的值仍然保留,下次调用函数sub()时,x不再被赋初值。第1次调用x/=2相当于x=x/2=8/2=4,第2次调用x=x/2=4/2=2,因此输出42。