0

我正在尝试用 C 重写一些代码,但遇到了一个我不理解的模式。

uint8_t buffer[20];

...

uint8_t *ps = buffer+3

+3 是什么意思?

我的假设是这是缓冲数组的前三个字节,但我不确定,我似乎找不到解释。

4

1 回答 1

0

在 C++ 中,数组是指针,而索引运算符(方括号)使您可以访问该位置的元素:当您使用 is 访问元素N时,真正发生的情况buffer[N]*(buffer + N)*开头意味着提取该内存地址中的值。因此uint8_t *ps = buffer+3将缓冲区元素的地址保存在位置3中。要访问该值,您只需键入 *ps 即可获得该元素的值。

于 2020-03-16T22:08:54.133 回答