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是什么意思?谁能给我解释一下
buffer + i
是指向 buffer
偏移 i
个字符的内存位置的指针。相当于&buffer[i]
。
- 最后的
1
表示复制1个字节
- 请记住,由于您只复制了 1 个字节,因此您没有复制
"H"
的空终止字符。
我找到了这样的代码:
#include <stdio.h>
int main() {
char buffer[20];
for(int i=0;i<20;i++)
{
memcpy(buffer+i, "H", 1);
}
}
我不明白为什么会有:buffer + i,最后的1是什么意思?谁能给我解释一下
buffer + i
是指向buffer
偏移i
个字符的内存位置的指针。相当于&buffer[i]
。- 最后的
1
表示复制1个字节 - 请记住,由于您只复制了 1 个字节,因此您没有复制
"H"
的空终止字符。