课程
/后端开发
/C
/C语言入门
为什么i += square(i)运行后i的值在for循环中是2,在下一次循环i += square(i);时又是
10了
2018-11-15
源自:C语言入门 4-9
正在回答
#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; }
你这个好乱啊,为啥所有变量都设为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。
举报
C语言入门视频教程,带你进入编程世界的必修课-C语言
4 回答unit在代码中起什么作用?
4 回答%d在里面起到什么作用?
1 回答return(0)在程序中起什么作用
2 回答"int main"中的int是什么意思 起什么作用?
3 回答发现吧test.c中函数改为static就行了,为什么被引用的必须是static类型?