在c ++中获取表达式的含义

ekr*_*mer 0 c++ pointers

我正在读取c ++中的遗留代码,它定义了一个数组,然后分配给一个变量(见下文).虽然我过去使用过指针和引用,但我不确定这个表达式的含义.问题:
1.这个表达的含义是什么?
2.当(WORD*)中已经存在另一个指针时,为什么外部指针是必需的?
提前致谢 !

BYTE txbuf[16]; 
...
WORD crc = *((WORD*)(&txbuf[2]));
Run Code Online (Sandbox Code Playgroud)

mol*_*ilo 5

问题2首先:
没有"外部指针" - 内部*是转换为指针类型的一部分,外部*是取消引用结果指针.

问题1:将
其分解为部分,这意味着与此相同:

BYTE txbuf[16]; 
...
BYTE* byte_pointer = &txbuf[2];
WORD* word_pointer = (WORD*) byte_pointer;
WORD crc = *word_pointer;
Run Code Online (Sandbox Code Playgroud)