今天在看大神的博客时,看到了一段代码就拿过来试了试,没想到还有些奥妙之处,现在记下方便以后复习。
include<stdio.h>
int iterate(int value)
{
if(1==value)
return 1;
else
return iterate(value--)+value;
//return iterate(value-1)+value;
}
int main(void)
{
int rc;
rc=iterate(10);
printf("%d\n",rc);
return 1;
}
编译链接正常,但运行后提示:
Segmentation fault
将 return iterate(value--)+value;改成return iterate(value-1)+value;后编译运行正常。自减与直接减1的区别还是很大的,以后要注意了,呵呵。