为了账号安全,请及时绑定邮箱和手机立即绑定

static起了什么作用

https://img1.sycdn.imooc.com//5bed5a7c0001ff0517590670.jpg

为什么i += square(i)运行后i的值在for循环中是2,在下一次循环i += square(i);时又是

10了

正在回答

2 回答

#include <stdio.h>
int square(int w){
    return w*w*w;
}
int main()
{
   int i=0;
   i=square(i);
   for(;i<3;i++){
       static int a=1;
       a+=square(a);
       printf("%d\n",a);
   }
   printf("%d\n",i);
    return 0;    
}

0 回复 有任何疑惑可以回复我~

你这个好乱啊,为啥所有变量都设为i。

第一次你定义static i为1,之后继续运行i+=square(i),因为i为1所以1的三次方也为1,所以i=1+1=2.

第二次i=2,2的三次幂为8,所以i=2+8=10。

第三次i=10,i的三次幂为1000,所以i=1010。

这个时候你上面定义for循环的i等于3跳出循环,输出i=3。

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

static起了什么作用

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信