与之前的那个版本没什么大的变化.
只是将其中的数组换成了指针进行操作.
首先while的判断式中getword依然是读取一个单词.
然后循环体中的if判断式判断首字符是不是字母.
是字母继续判断binsearch返回的指针是否合法.
是的话将指针p指向的keytab结构成员+1.
然后也是输出.
限定条件是p这个指针不大于keytab这个起始地址加上结构数量.
没什么变化,
然后是binsearch函数.
原先的三个位置变量变成了指向key结构的指针,指向的是tab这个之前定义的含有所有关键字的结构数组.
因为数组空间是一段连续的地址,所以可以进行下面的操作,
两个指针之间不能做加法可以做减法.更不能直接做除法,所以得到high与low之间的元素数目,将这个数字除以2再加上开头的地址就是中间数的地址了.
其他一样.
这里的原书需要看一下,讲了一些细节在里面.