Конструкция *(*) - зачем звездочка перед скобками? - C (СИ)
Формулировка задачи:
#define WDKEY *(volatile unsigned int*)0x7025
Ребят скажите правильно я понял эту конструкцию:
0x7025 константа
(volatile unsigned int*) — операция приведения типа: константа преобразуется к типу «указатель на volatile unsigned int»
WDKEY подразумевает *(volatile unsigned int*)0x7025
Вот только я не понимаю конструкцию *(*) зачем звездочка перед скобками?
Решение задачи: «Конструкция *(*) - зачем звездочка перед скобками?»
textual
Листинг программы
int y = *(int *) ptrVoid;
Объяснение кода листинга программы
В данном коде происходит следующее:
- Переменная
ptrVoidсодержит указатель на void (неопределенный тип данных). - В строке
int y = *(int *) ptrVoid;происходит приведение типа указателяptrVoidк типуint *(указатель на int) с помощью оператора*перед скобками(). - Затем, используя оператор разыменования
*, значение указателяptrVoidпреобразуется в int и присваивается переменнойy. Таким образом, в данном коде переменнаяyинициализируется значением, содержащимся в области памяти, на которую указывает указательptrVoid.