能力值:
( LV9,RANK:200 )
|
-
-
2 楼
指针++啊 14*4=56
|
能力值:
( LV7,RANK:110 )
|
-
-
3 楼
语句1: *(_DWORD *)(a1 + 56) = 0; //内存位置赋值.
语句2: *((_DWORD *)this + 14) = 0;//类成员变量赋值.
注意上面括号的区别就知道了.
|
能力值:
( LV3,RANK:20 )
|
-
-
4 楼
你好,能解释的再详细点吗,我不懂得就是上面括号和指针的用法
|
能力值:
( LV7,RANK:110 )
|
-
-
5 楼
语句1: *(_DWORD *)(a1 + 56) = 0;
这句里面a1是一个内存地址,现在加上偏移56,获得一个新位置,然后强行清零DWORD大小的字节.
语句2: *((_DWORD *)this + 14) = 0;
这里this是一个指针,转换为DWORD*加上偏移14再赋值,为什么不直接使用this加偏移?因为this是c++里面的一个关键字,没有类型定义,这里是强行转换为DWORD的指针类型再赋值,同时这句应该在当前类的构造函数里面执行,第一句应该在其他类里面执行,也就是说a1是一个指向语句2类的变量.
|
能力值:
( LV2,RANK:10 )
|
-
-
6 楼
二楼已经说了,4字节型的指针+14等于地址+14*4=56
所以两种写法,指向的地址是同一个
|
能力值:
( LV3,RANK:20 )
|
-
-
7 楼
十分谢谢
|
能力值:
( LV3,RANK:20 )
|
-
-
8 楼
a1->_member1 = 0;
this->_member2 = 0;
|
能力值:
( LV2,RANK:10 )
|
-
-
9 楼
说道重点了,一下就明白了.
|
|
|