当我们从另一个指针中减去一个指针时,差值不等于它们相距多少字节,而是等于它们相距多少个整数(如果指向整数)。为什么这样?
这个想法是你指向内存块
+----+----+----+----+----+----+
| 06 | 07 | 08 | 09 | 10 | 11 | mem
+----+----+----+----+----+----+
| 18 | 24 | 17 | 53 | -7 | 14 | data
+----+----+----+----+----+----+
如果你有int* p = &(array[5])
then *p
将会 14. 去p=p-3
将使*p
be 17.
所以如果你有int* p = &(array[5])
and int *q = &(array[3])
, then p-q
应该是 2,因为指针指向相隔 2 个块的内存。
在处理原始内存(数组、列表、映射等)时,绘制大量方框!这真的很有帮助!
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)