您的位置:首页 > 其它

static 在循环中的作用

2017-02-14 21:31 225 查看
#include<stdio.h>
int Square(int i){
return i*i;
}

int main(){
int i = 0;
i = Square(i);

for(	;i<3;i++){
static int i = 1;
i+=Square(i);
printf("%d,",i);
}
printf("%d\n",i);
return 0;
}

上述代码的运行结果为 2,6,42,3

下面我们来分析这个程序的运行结果,static  关键字所声明的i作用范围为

static int i = 1;
i+=Square(i);
printf("%d,",i);
这三句 不妨将for循环里面用j来代替这个i,与全局变量i区分开来

当 i=0 时 j=1 j+=Square(j) 的值为 1+1          打印输出 2

当 i=1 时 j=2 j+=Square(j) 的值为 2+4          打印输出 6

当 i=2 时 j=1 j+=Square(j) 的值为 6+36       打印输出 42

当 i=3 时 跳出循环 此时 i = 3                          打印输出3
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: