iCount 形参=4;它是通过pText-Begin-5得出来的。那么问题来了 pText等于0x012ca07a,pBegin等于0x012ca070,按理来说是a-1等于9啊 ,为什么会等于4?
vs十六进制数相减为什么不对啊
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
1条回答 默认 最新
- qq_40774221 2017-11-22 22:34关注
对于编译器而言,指针只有同类型才能相减,同类型的指针相减的结果就是 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. 不一定说的清楚,感觉解释就这么
拗口,你就当个参考,还是不懂到处找找指针的资料看看.
_本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报
悬赏问题
- ¥15 深度学习根据CNN网络模型,搭建BP模型并训练MNIST数据集
- ¥15 lammps拉伸应力应变曲线分析
- ¥15 C++ 头文件/宏冲突问题解决
- ¥15 用comsol模拟大气湍流通过底部加热(温度不同)的腔体
- ¥50 安卓adb backup备份子用户应用数据失败
- ¥20 有人能用聚类分析帮我分析一下文本内容嘛
- ¥15 请问Lammps做复合材料拉伸模拟,应力应变曲线问题
- ¥30 python代码,帮调试,帮帮忙吧
- ¥15 #MATLAB仿真#车辆换道路径规划
- ¥15 java 操作 elasticsearch 8.1 实现 索引的重建