引用指针(*&)语法

Try*_*431 2 c c++ struct pointers reference

我正在看一段代码,它将命令从一个硬件发送到另一个硬件.下面是一个片段.

unsigned char data[3];

msg_header *mHead; //pointer of struct msg_header
mHead = (msg_header *) &data; 

mHead->startByte = START_BYTE;
mHead->ID = GET_TELEM; //0x30
mHead->length = 0;
Run Code Online (Sandbox Code Playgroud)

结构msg_header在头文件中定义.

typedef struct {
unsigned char startByte;    
unsigned char ID;
unsigned char length;   
//  unsigned char from;
} msg_header;
Run Code Online (Sandbox Code Playgroud)

有人可以解释mHead = (msg_header *) &data;实际上在做什么吗?我知道*&正在创建对指向数据的指针的引用,但为什么msg_header在parantheses中,为什么包含它?

谢谢你的帮助.

Luc*_*ore 8

它将地址data转换为msg_header*类型 - 指向msg_header.

没有提及可以提及.&可用于获取变量的地址.