在C中为字符数组添加一个是什么?
我正在查看一些用于学习目的的代码。 我正在研究这部分代码。
// eg 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会对它做什么?
在C中,每个数组名都是一个指针,所以这里的buf也意味着指向buf [0]的指针。然后“buf + 1”表示“buf [1]”的地址。
buf+1
相当于&(buf[1])
buf+1
与&(buf[1])
。 换句话说,它返回指向buf的第二个(索引1)字符的指针。
指针算术(堆栈溢出)