只需一步,快速开始
54
72
525
版主
假设pResDir 是一个结构体指针,pResDir + 1 和 (字节型*)pResDir + 1 的结果不一样,是因为这两者之间存在类型转换和指针算术运算的差异。 pResDir + 1: 在这个表达式中,pResDir 是一个结构体指针,它的数据类型是某个结构体类型。 当你对pResDir进行加1操作时,实际上是在执行指针算术,将指针移动到下一个结构体的大小。 也就是说,pResDir + 1 会将pResDir指向的地址加上结构体的大小,然后指向新的地址。 (字节型*)pResDir + 1: 在这个表达式中,pResDir被强制转换为字节型*类型,也就是BYTE*或char*。 当你对(字节型*)pResDir进行加1操作时,你实际上是在执行字节级别的指针算术,将指针移动一个字节。 也就是说,(字节型*)pResDir + 1 会将pResDir指向的地址加上1,然后指向新的地址。 因此,pResDir + 1 和 (字节型*)pResDir + 1 的结果不一样,因为它们进行的是不同级别的指针算术。前者是基于结构体的大小,后者是基于单个字节。 如果你想按字节移动指针,你应该使用(字节型*)pResDir + 1。如果你想按结构体的大小移动指针,你应该使用pResDir + 1。根据你的需求,选择适当的方式。
您需要 登录 才可以下载或查看,没有账号?立即注册
举报
63
216
1010
管理员
18
43
254
中级会员
5
6
110
注册会员
9
17
140
0
70
488
本版积分规则 发表回复 回帖后跳转到最后一页
|Archiver|手机版|小黑屋|炫语言 | 炫彩界面库 | 用户所需, 正是我所做! ( 鄂ICP备2023014763号-1 )
GMT+8, 2024-11-21 17:46 , Processed in 0.072907 second(s), 21 queries .
Powered by Discuz! X3.5
© 2001-2024 Discuz! Team.