小编ish*_*oni的帖子

单次遍历中链接列表的中间点?

我试图找到循环开始的单链接列表的要点.我想到的是2个指针*慢,*快速移动速度是其他速度的两倍.如果列表在某个时刻有循环

    5-6-7-8
    |     |
1-2-3-4-7-7
Run Code Online (Sandbox Code Playgroud)

慢=快

可以有另一个优雅的解决方案,以便列表只遍历一次?

c hyperlink data-structures singly-linked-list

7
推荐指数
1
解决办法
1992
查看次数

无法理解此代码堆栈存储函数调用c的输出

我有以下代码,但是我不明白为什么以及它输出它的作用.

int main(){
   int *i;
   int *fun();
   i=fun();
   printf("%d\n",*i);
   printf("%d\n",*i);
}

int *fun(){ 
   int k=12;
   return(&k);
}
Run Code Online (Sandbox Code Playgroud)

输出为12和垃圾值.有人可以解释输出吗?

它不应该两次都返回垃圾值吗?

我知道它k是本地的fun(),因此它将存储在堆栈中,并且当它fun()超出范围时它将被销毁.我在这里错过了什么概念?

c stack function

0
推荐指数
1
解决办法
67
查看次数