关于“=”和"<="的一点小问题
本人为初学者,在练习一个递归求阶乘的问题时出现了一点小问题。下面是一部分代码,红色为造成我迷惑的部分:
int fact(int t)
{
if (t=1)
return 1;
else
return t*fact(t-1);
}
无论输是什么,返回值都是1;但我认为参数不是1,那么应该执行else后面的语句。
当把代码改成:
int fact(int t)
{
if (t<=1)
return 1;
else
return t*fact(t-1);
}
就返回了我需要的值。
这令我很困惑。
我的操作系统是windows7,使用CFree