xls6688 发表于 2016-5-21 16:16:39

阶乘

本帖最后由 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-21 22:05:41

本帖最后由 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]
查看完整版本: 阶乘