2013-11-26 4 views
-1

Вопрос в названии указано, тоже ...В чем разница между (DWORD), * (DWORD *) и (DWORD *)?

В чем разница между (DWORD), *(DWORD*) и (DWORD*)?

Пример:

#include <windows.h> 
#define playerpointer 0xABC12375 // example 

int main() 
{ 
    DWORD dwPlayerPtr = *(DWORD*)(playerpointer); 
} 

Надеется, что вы можете мне помочь ...

+0

Пример не относится к вопросу. Что * Разница * Разве вы не понимаете? –

+3

Любая достойная книга на C или C++ должна объяснить это довольно четко - есть [удобный список] (http://stackoverflow.com/questions/388242/the-definitive-c-book-guide-and-list), если вы не У меня есть. – Angew

+1

Какой из этих трех вы понимаете? Можете ли вы объяснить, что вы думаете, что они делают? Если вы не знаете, что делает один или несколько из них, то об этом вы должны спросить. – hvd

ответ

4

DWORD представляет собой тип данных MS-Windows. Она определяется как

typedef unsigned long DWORD 

(DWORD*) литая преобразовать значение указателя на DWORD.

*(DWORD*) затем удаляет ссылку на этот указатель на фактическое значение DWORD.

Таким образом, в вашем примере выше,

DWORD dwPlayerPtr = *(DWORD*)(playerpointer); 

Если перевести на «английский язык», то оператор, говорящий мне получить значение переменной типа DWORD, который хранится в папке 0xABC12375.

+0

Ах спасибо! – user3036727

+0

Добро пожаловать. – OldProgrammer

+0

Но когда вы используете * (DWORD *) * (DWORD *) Я имею в виду, когда вы используете * (DWORD *) 2 раза В нескольких кодах кода это похоже на это – user3036727

Смежные вопросы