C 数组 强制转换 memcpy
时间: 2024-01-09 20:22:41 浏览: 80
C语言中的memcpy函数用于将源数组中的数据复制到目标数组中。在使用memcpy函数时,需要进行强制类型转换,将目标数组和源数组的指针类型转换为void*指针类型。memcpy函数的原型如下:
```c
void *memcpy(void *destin, void *source, unsigned n);
```
其中,destin是指向用于存储复制内容的目标数组的指针,source是指向要复制的数据源的指针,n是要被复制的字节数。
下面是一个示例代码,演示了如何使用memcpy函数进行数组的强制转换和复制:
```c
#include <stdio.h>
#include <string.h>
int main(void) {
char data[7] = "memcpy";
printf("%s\n", data);
char cdata[20] = {0};
memcpy(cdata, data, 6);
printf("%s\n", cdata);
memcpy(cdata, "123456", 6);
printf("%s\n", cdata);
memcpy(&cdata[6], "78910", 6); // 追加数据
printf("%s\n", cdata);
return 0;
}
```
这段代码首先定义了一个源数组data和一个目标数组cdata。然后使用memcpy函数将data中的数据复制到cdata中,并打印出cdata的内容。接着,使用memcpy函数将字符串"123456"复制到cdata中,并再次打印出cdata的内容。最后,使用memcpy函数将字符串"78910"追加到cdata中,并打印出cdata的最终内容。
阅读全文