Java System.arraycopy() 对比 C++ memcpy()

System.arraycopy()

java.lang.System类为标准输入和输出、加载文件和库或访问外部定义的属性提供了有用的方法。
java.lang.System.arraycopy()方法将源数组从特定的起始位置复制到上述位置的目标数组。要复制的参数的数量由一个参数决定。
source_Position 到 source_Position+length–1 的组件从 destination_Position 复制到 destination_Position+length–1 类声明的目标数组。

语法:

public static void arraycopy(Object source_arr, int sourcePos, Object
dest_arr, int destPos, int len)

source_arr:源数组
sourcePos:源数组中要复制的起始位置
dest_arr:目标数组
destPos:目标数组中要放置的起始位置
len:要复制的长度

参考例子:

 int source_arr[] = { 10, 20, 30, 40, 50, 60, 70, 80, 90, 100 };
 int dest_arr[] = { 15, 25, 35, 45, 55, 65, 75, 85, 95, 105};
  
 int sourcePos = 3;
 int destPos = 5;
 int len = 4;

 System.arraycopy(source_arr, sourcePos, dest_arr, destPos, len);
 
 输出: 15 25 35 45 55 40 50 60 70 105 

memcpy() 函数声明

void *memcpy(void *str1, const void *str2, size_t n)

从存储区 str2 复制 n 个字节到存储区 str1。

str1 – 指向用于存储复制内容的目标数组,类型强制转换为 void* 指针。
str2 – 指向要复制的数据源,类型强制转换为 void* 指针。
n – 要被复制的字节数。

参考例子:

int main(void)
{
  char src[] = "***";
  char dest[] = "abcdefg";
  memcpy(dest, src, strlen(src));
  printf("memcpy 后: %s\n", dest);
  return 0;
}

输出: memcpy 后: ***defg

你可能感兴趣的:(java,c++)