能力值:
( LV3,RANK:20 )
|
-
-
2 楼
为什么就不知道了。因为这个是c里面的规定吧。应是编译器根据你的是什么指针而加那个类型的大小。
21: dw=12;
0040B599 mov dword ptr [ebp-120h],0Ch
22: pdw=&dw;
0040B5A3 lea eax,[ebp-120h]
0040B5A9 mov dword ptr [ebp-11Ch],eax
23: pdw=pdw+1;
0040B5AF mov ecx,dword ptr [ebp-11Ch]
0040B5B5 add ecx,4
0040B5B8 mov dword ptr [ebp-11Ch],ecx
也看不到有别的代码他是为什么要加4的,但是他就是直接加4
|
能力值:
( LV3,RANK:20 )
|
-
-
3 楼
(Addr + 1) 在C语言里相当于addr + sizeof(DWORD)
|
能力值:
( LV3,RANK:20 )
|
-
-
4 楼
这就是C语言语法,因为Addr是DWORD指针
|
能力值:
( LV3,RANK:20 )
|
-
-
5 楼
呵呵,记得给分
|
能力值:
( LV9,RANK:610 )
|
-
-
6 楼
不光是DWORD指针, 结构体指针也是这样的
比如一个Struct 指针p
你 执行 p = p + 1;指针实际上是移动了一个结构体大小的位置
C 语法
|
能力值:
( LV4,RANK:50 )
|
-
-
7 楼
若p是类型T的指针,p+1相当于p移动了sizeof(T)个字节
|
能力值:
( LV2,RANK:10 )
|
-
-
8 楼
多谢,这个问题,迷惑了我。
|
|
|