1 练习目的
- 熟练掌握地址运算
C语言中两个地址不能相加,但是能相减。二分算法,肯定需要定位到被查找数组的中间位置!
如何实现数组中间地址的定位?
不能使用:
( p S t a r t + p E n d ) / 2 → m i d (pStart + pEnd) / 2\rightarrow mid (pStart+pEnd)/2→mid
指针不能相加!!!但是可以相减啊!!!
( p S t a r t + ( p E n d − p S t a r t ) 2 × e l e m S i z e × e l e m S i z e ) → m i d (pStart + \frac{(pEnd - pStart)}{2 \times elemSize} \times elemSize) \rightarrow mid (pStart+2×elemSize(pEnd−pStart)×elem