我正在做一个用 C 编程语言编写的项目。我有一个代码片段如下
unsigned char value[10];
#define arr() (&value[0])
为什么他们为 unsigned char 数组定义了一种“函数”( arr()
)类型的'd 变量?#define
他们正在尝试使用诸如arr()[1],arr()[2]
等之类的变量,
arr() + 2
等于value + 2
。_ 我尝试执行一个小程序,但这两个结果给了我不同的答案。这怎么可能。因为他们将第一个数组的地址分配给arr()
. 这两个不应该是一样的吗?
谁能解释定义上述变量的意义是什么?