这是我的代码:NSMutableArray *imageArray=[[NSMutableArray alloc] init];for(int i=1;i<=7;i++){ UIImage *image=[UIImage imageNamed:[NSString stringWithFormat:@"%d.png",i];[imageArray addObject:image];}UIImageView *imageView=[[UIImageView alloc] init];imageView.frame=CGRectMake((375-120)/2,100,120,75);[self.view addSubview:imageView];imageView.animationImages = imageArray;imageView.animationDuration=2;imageView.animationRepeatCount=10;[imageView startAnimating];
前面的答案都是错的,正确的答案应该为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(){}完全等价