我有一个我一直在玩的程序,我偶然发现了这样的事情:
unsigned char tmp[4];
...
if (mpu_write_mem(D_1_36, 2, tmp+2))
return -1;
,其中
int mpu_write_mem(unsigned short mem_addr, unsigned short length,
unsigned char *data)
请原谅我的无知,但我究竟是如何在数组中添加2?我不太明白。我一直在尝试使用Python制作一个程序,我一直在使用它作为参考,但我只是傻眼了,如果有人可以帮助这样的类似的Python等效,它也会非常有用。
答案 0 :(得分:1)
在这种情况下,您没有向数组中添加2,而是在tmp的内存地址中添加2。在C数组中,存储为一组 n (数组长度)顺序存储器地址。所以代码tmp + 2意味着你在第二个位置启动数组; Python等价物将是 tmp [2:]
另请注意,传递给函数的长度为2,尽管tmp的长度为4.这是因为你启动了2个元素,只留下tmp [2]和tmp [3]。