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
  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值