看到下面的代码,我在另一个函数中定义了一个函数,
void test1(void)
{
void test2(void)
{
printf("test2\n");
}
printf("test1\n");
}
int main(void)
{
test1();
return 0;
}
Run Code Online (Sandbox Code Playgroud)
这种用法很奇怪,是c89/c99的用法还是gcc的扩展(我在ubuntu 12编译时使用了gcc 4.6.3).我运行此代码并输出"test2"和"test1".test2只能在test1中调用.
更重要的是,这种用法的常见场景是什么,或者这种用法用于什么?
就地复杂度和空间复杂度 O(1) 意味着不同的事情吗?如果是,有人可以解释其中的区别吗?
在谈论算法时.我看到了就地和稳定排序算法的描述.是说算法是稳定的,就像说它的原位一样?如果不是有什么区别?