vs十六进制数相减为什么不对啊

iCount 形参=4;它是通过pText-Begin-5得出来的。那么问题来了 pText等于0x012ca07a,pBegin等于0x012ca070,按理来说是a-1等于9啊 ,为什么会等于4?
图片说明图片说明

对于编译器而言,指针只有同类型才能相减,同类型的指针相减的结果就是 2个指针变量指向的地址数值相减的结果 再去除以指向的对象类型大小
你的这个问题 指向的对象类型wchar_t(2字节的宽字符) wchar_t* pText 和 wchar_t*pBegin. pText - pBegin 对于编译而已他会解释
为取pText的指向地址数值0x012ca07a 取pBegin指向地址的数值0x012ca070 相减在除指向的对象类型大小,
就是(x012ca07a-0x012ca070)/sizeof(wchar) = 5 (sizeof(wchar_t) = 2).
_编译器就是这么帮你编译的没有为什么. 如果是int* p1 ,int *p2;这样 指向的对象类型是int 最后就是除以4 因为sizeof(int)就是4 .
如果是个结构体譬如struct Age{int Year;int Month,;int Day;} 在对齐是4的情况下就是除以sizeof(Age) = 12. 不一定说的清楚,感觉解释就这么
拗口,你就当个参考,还是不懂到处找找指针的资料看看.
_