#include<stdio.h>
int main()
{
int i=1;
for(;i<=4;i++)
printf("%d\t",i*i);
printf("\n");
return 0;
}
#include<stdio.h>
#define P(x) ((x)*(x))
int main()
{
int i=1;
while(i<=4)printf("%d\t",P(i++));//(i++)*(i++)
printf("\n");
return 0;
}
printf("%d\t",P(i++)); //(i++)*(i++)
i=1, 输出1 ,然后i +1=2, 大神,接下来过程是怎样的?
没看见是(i++)*(i++)
首先i为1,说明在这个语句中i的值为1.
然后分为两种情况(是因为编译器的不同结束,不同编译器不同)
第一种:第一次输出为1。
(i++)*(i++) 整个语句中i的值为1,所以最后的整个值为1.
然后执行2次i++,所以第一次循环后i=3
总结:输出1,然后i为3
第二种:
(i++)*(i++) 首先第一个i为1,然后i++,导致第二个i为2,然后接着i++为3.
总结:输出2,i为3
第二次循环:
按照第一种情况,同理输出9.随后i为5
按照第二种情况:第二个i为4,所以整个就是3*4为12。即输出12.最后i为5
所以,
第一种情况输出 : 1 9 最后i为5
第一种情况输出 : 2 12 最后i为5
呃,我是初学者,大神。还有“然后执行2次i++,所以第一次循环后i=3”
这里的为什么是两次,并且它是怎么执行两次的?
(i++)*(i++) 这是一次循环
这是2个i++ 你应该看得到吧·~~~~~~~~~
i++就是 i=i+1的简化版·~就是执行2次 i=i+1;