memcpy 函数有些奇怪

Something strange with memcpy function

我找到了这样的代码:

#include <stdio.h>
int main() { 
    char buffer[20];
    for(int i=0;i<20;i++)
    {
        memcpy(buffer+i, "H", 1);
    }
}

我不明白为什么会有:buffer + i,最后的1是什么意思?谁能给我解释一下

  1. buffer + i 是指向 buffer 偏移 i 个字符的内存位置的指针。相当于&buffer[i]
  2. 最后的1表示复制1个字节
  3. 请记住,由于您只复制了 1 个字节,因此您没有复制 "H" 的空终止字符。