1

我正在查看一些用于学习目的的代码。我正在处理这部分代码。

// e.g. const unsigned char data={0x1,0x7C ... }
unsigned char buf[40];
memset(buf,0,40);
buf[0] = 0x52;
memcpy(buf+1, data, length); // What does buf+1 do in this situation?

在调用 memcpy 的最后一行,buf+1 是做什么的?buf 是一个字符数组,那么 +1 对它有什么作用呢?

4

4 回答 4

5

buf+1相当于&(buf[1])

于 2009-09-08T01:51:35.103 回答
4

在C语言中,每个数组名都是一个指针,所以这里的buf也表示指向buf[0]的指针。那么“buf+1”就是“buf[1]”的地址。

于 2009-09-08T01:53:47.750 回答
3

buf+1是一样的&(buf[1])。换句话说,它返回一个指向 buf 的第二个(索引 1)字符的指针。

于 2009-09-08T01:51:05.947 回答
0

指针算术(堆栈溢出)

于 2009-09-08T01:53:15.843 回答