for里面循环三次每次都要输出吗?最后一次为什么等于3啊?

答案是2,6,42,3
#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("%dn", i);
return 0;

你为啥非得定义重名的静态变量呢?不是自个找麻烦吗?
for循环每次都要i++的,当i=3时,才满足for循环结束条件,所以最后printf出来的i肯定是3啊。不然还得循环啊

0,1,,2不就3次了吗。等于3 条件不满足,才退出循环啊。