阶乘
本帖最后由 xls6688 于 2016-5-21 16:37 编辑include <stdio.h>
int main(void)
{
long s,i;
for (i = 1,s = 1;i <= 4; i++)
{
s = s * i;
}
printf("%d\n",s);
return 0;
}
---------- gcc_move ----------
24
输出完成 (耗时 0 秒) - 正常终止
用c99标准 在for 循环中定义i;结果确不一样。
#include <stdio.h>
int main(void)
{
long s;
for (long i = 1,s = 1;i <= 4; i++)
{
s = s * i;
}
printf("%d\n",s);
return 0;
}
---------- gcc_move ----------
15
输出完成 (耗时 0 秒) - 正常终止 本帖最后由 mingcxx 于 2016-5-22 00:40 编辑
int main(void)
{
long s; //第一个s,
for (long i = 1,s = 1;i <= 4; i++)
{ //第二个s,覆盖第一个s,作用域是for循环
s = s * i;
}
//for循环结束,for内的第二个s内存释放
printf("%d\n",s);//第一个s,而且,没有初始化
return 0;
}
页:
[1]