当前位置: 首页 > news >正文

数组的复制

需求:现在有一个数组arr={1,2,3},然后有另外一个数组temp={99,100},现在需要将temp复制到arr。

java

public class test1 {public static void main(String[] args) {int arr1[] = new int[]{1,2,3};int temp[]= new int[]{99,100};arr1 =temp;System.out.println(arr1[0]);}

CPP

注意:

1.在cpp中不能直接重新赋值整个数组,所以以下代码是错的

#include <iostream>
using namespace std;
#include "add.h"int main() {//初始化数组int arr1[] = { 1,2,3 };int arr2[] = { 99,100 };arr1 = arr2;//这里是错的system("pause");return 0;
}

2.可以通过指针实现类似的功能

#include <iostream>  int main() {  int arr1[] = {1, 2, 3};  int arr2[] = {99, 100};  // 在C++中,不能直接重新赋值整个数组,但可以重新指向一个新的数组  // 使用指针来实现类似的功能  int* ptr = arr1; // 初始时,ptr指向arr1  ptr = arr2;      // 现在,ptr重新指向arr2  std::cout << ptr[0] << std::endl; // 打印ptr指向的数组的第一个元素,即99  return 0;  
}

这里其实相当于定义了一个新指针指向arr2,但是其实并没有完成数组的复制,注意数组名时指针常量,是无法改变其指向的,因此以下代码是错误的

#include <iostream>
using namespace std;
#include "add.h"int main() {//初始化数组int arr1[] = { 1,2,3 };int arr2[] = { 99,100 };int* temp = arr1;arr1 = arr2;//这里是错误的system("pause");return 0;
}

正确的方式是利用动态分配数组的方式完成复制

#include <iostream>
using namespace std;int main() {//定义两个指针指向两个数组int* arr1 = new int[3];int* arr2 = new int[2];//这里初始化只能一个一个进行arr1[0] = 1;arr1[1] = 2;arr1[2] = 3;arr2[0] = 99;arr2[1] = 100;//释放arr1的内存delete[] arr1;//将arr1指向arr2arr1 = arr2;for (int i = 0; i < 2; i++){cout << arr1[i] << " ";}system("pause");return 0;
}

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • C#初级——List 容器
  • C/C++开发,opencv光流法跟踪特征点
  • 17085 工作分配问题(优先做)
  • C# 设计模式之抽象工厂模式
  • 定时器知识点
  • Go语言加Vue3零基础入门全栈班15 gin+gorm+vue3用户管理系统实战录播课 2024年08月04日 课程笔记
  • Python爬虫与MongoDB的完美结合
  • 《零散知识点 · 自定义 HandleMapping》
  • 鸿蒙媒体开发【相机数据采集保存】拍照和图片
  • 大模型术语表
  • 24年第五届“华数杯”数学建模竞赛浅析
  • 利用ffmpeg转码视频为gif图片,调整gif图片的大小
  • 全球氢燃料电池汽车市场规划预测:未来六年CAGR为44.4%
  • 前端-防抖代码
  • App推广新利器:Xinstall携带参数安装功能详解
  • [LeetCode] Wiggle Sort
  • 2017届校招提前批面试回顾
  • Android路由框架AnnoRouter:使用Java接口来定义路由跳转
  • Fastjson的基本使用方法大全
  • Js基础知识(一) - 变量
  • Node + FFmpeg 实现Canvas动画导出视频
  • nodejs调试方法
  • SAP云平台运行环境Cloud Foundry和Neo的区别
  • Zepto.js源码学习之二
  • - 概述 - 《设计模式(极简c++版)》
  • 计算机常识 - 收藏集 - 掘金
  • 记录一下第一次使用npm
  • 如何解决微信端直接跳WAP端
  • 如何实现 font-size 的响应式
  • 通过npm或yarn自动生成vue组件
  • 微信公众号开发小记——5.python微信红包
  • 直播平台建设千万不要忘记流媒体服务器的存在 ...
  • ​io --- 处理流的核心工具​
  • ​决定德拉瓦州地区版图的关键历史事件
  • ​无人机石油管道巡检方案新亮点:灵活准确又高效
  • #vue3 实现前端下载excel文件模板功能
  • #我与Java虚拟机的故事#连载04:一本让自己没面子的书
  • #在 README.md 中生成项目目录结构
  • %3cscript放入php,跟bWAPP学WEB安全(PHP代码)--XSS跨站脚本攻击
  • (27)4.8 习题课
  • (Windows环境)FFMPEG编译,包含编译x264以及x265
  • (不用互三)AI绘画:科技赋能艺术的崭新时代
  • (附源码)计算机毕业设计SSM基于java的云顶博客系统
  • (南京观海微电子)——I3C协议介绍
  • (牛客腾讯思维编程题)编码编码分组打印下标(java 版本+ C版本)
  • (数据大屏)(Hadoop)基于SSM框架的学院校友管理系统的设计与实现+文档
  • (四)opengl函数加载和错误处理
  • (转)编辑寄语:因为爱心,所以美丽
  • (转载)虚函数剖析
  • .NET Framework 4.6.2改进了WPF和安全性
  • .net 重复调用webservice_Java RMI 远程调用详解,优劣势说明
  • /usr/bin/perl:bad interpreter:No such file or directory 的解决办法
  • @Autowired 和 @Resource 区别的补充说明与示例
  • [ CTF ] WriteUp- 2022年第三届“网鼎杯”网络安全大赛(白虎组)
  • [ 数据结构 - C++]红黑树RBTree