- 博客(2)
- 资源 (2)
- 收藏
- 关注
原创 可变参数函数——以printf为例子
一. 调用形式 void foo(int argv1, char argv2, …) 在参数表的末尾给出省略号,表明这个函数的参数是可变的 二. 工作原理 进程在调用函数时,会将函数参数压入用户栈,压入的顺序是从参数表右端开始,从右至左的压栈顺序支持了可变参数的实现。左边的参数在低地址,右边的参数在高地址。进入函数后,以左边的参数为线索,可透过指针依次访问右边省略掉的参数。 可变参数
2016-12-18 23:34:36 982
原创 求单链表是否有环、环长、入环点、链长
1. 单链表是否有环 用两个快慢指针去判断单链表是否环,快指针的速度是慢指针的两倍,若单链表有环,则两个指针会先后进入环内,并且快指针会从后面追上慢指针。下面来严谨地分析一下两个指针在环内相遇的情况。 假设此时慢指针s和快指针f都在环内,相隔k点,环内共有R点,t时间之后,两指针相遇。 [快指针最终位置 = 慢指针最终位置] -> [(2t mod R) + k = (t mod R)] 假
2016-12-18 23:32:44 1225
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人