发布网友 发布时间:2024-03-04 11:28
共1个回答
热心网友 时间:2024-03-07 05:53
前面的答案都是错的,正确的答案应该为i=10,,j=1解释:首先你要明确什么是静态定义static你理解“静态变量只接受第一次赋值”说明你对static还有一点认知,但是不完全正确本题的关键在于“静态全局变量j的定义”还有你对“赋初值”的理解由于“如果在定义局部变量时不赋初值的话,对静态局部变量来说,编译时自动赋初值0”因此staticintj;和staticintj=0;是完全等价的这样函数f2定义中的j=0;只是纯粹的赋值,则无论是第一次循环还是第10次循环,j=0;语句都不是一个初始化的语句,这点需要明确我想你只要弄明白这点,本题的答案是怎样得来的你就完全清楚了,你主要是对static的理解不完整而已附带一提,定义和声明函数时,如果参数类型为空可以省略即voidf1(void){}voidf2(void){}中的void是完全多余的,它和voidf1(){}voidf2(){}完全等价