java和C++中数组的初始化和复制
2013-07-24 10:04
423 查看
数组的初始化和复制
一.初始化:1.C++中数组的初始化
a. int myArray[10] = { 5, 5, 5, 5, 5, 5, 5, 5, 5,5 };
charmyArry[10] = “xiezhongqian”;
b、将缺省的成员置为 0:
intmyArray[10] = { 1, 2 }; //initialize to 1,2,0,0,0...
初始化全部成员为0:
intmyArray[10] = { 0 }; //all elements 0
int myArray[10] = {1}; //数组初始化为{1,0,……}
c、在 C++中, 空的初始化也会将全部成员置为 0:
intmyArray[10] = {}; //all elements 0 in C++
如果声明为static,则全部成员默认为0,如果你不去手动初始化的话。
staticint myArray[10]; //all elements 0
memset(touchInfos,0, sizeof(touchInfos));
d、或者使用new一个数组:int a[] = new int[10];
这种方法不能直接初始化。
2.Java数组的初始化
动态初始化:数组定义与为数组分配空间和赋值的操作分开进行;
静态初始化:在定义数字的同时就为数组元素分配空间并赋值;
默认初始化:数组是引用类型,它的元素相当于类的成员变量,因此数组分配空间后,每个元素也被按照成员变量的规则被隐士初始化。
TestD.java(动态):
程序代码:
public class TestD
{
public static void main(String args[]) {
int a[] ;
a = new int[3] ;
a[0] = 0 ;
a[1] = 1 ;
a[2] = 2 ;
Date days[] ;
days = new Date[3] ;
days[0] = new Date(2008,4,5) ;
days[1] = new Date(2008,2,31) ;
days[2] = new Date(2008,4,4) ;
}
}
class Date
{
int year,month,day ;
Date(int year ,int month ,int day) {
this.year = year ;
this.month = month ;
this.day = day ;
}
}
TestS.java(静态):
程序代码:
public class TestS
{
public static void main(String args[]) {
int a[] = {0,1,2} ;
Time times [] = {new Time(19,42,42),new Time(1,23,54),new Time(5,3,2)} ;
}
}
class Time
{
int hour,min,sec ;
Time(int hour ,int min ,int sec) {
this.hour = hour ;
this.min = min ;
this.sec = sec ;
}
}
TestDefault.java(默认):
程序代码:
public class TestDefault
{
public static void main(String args[]) {
int a [] = new int [5] ;
System.out.println("" + a[3]) ;
}
}
二、数组的复制
2.1 C++中数组的复制
1)使用逐个复制的方法:
for (int i=0 ; i<10 ; i++)
{
b[i] = a[i];
}
2)使用memcpy
inta[10]={34,56,4,10,77,51,93,30,5,52};
int b[10];
memcpy(b,a,sizeof(b));
2.2 java数组的复制
常用的数组复制的方法有以下3种:
1).使用循环语句逐个复制数组的元素(最简单的方法)
for(int j = 0;j<targetArray.length;j++){
targetArray[j] = sourceArray[j];
}
2).使用System类中的静态方法arrayCopy
//使用System中的静态方法arraycopy复制数组
System.arraycopy(sourceArray, 0,targetArray, 0, sourceArray.length);
3).使用clone方法复制数组
targetArray= (int[])sourceArray.clone();
//使用clone方法将int[]型数组将sourceArray复制到targetArray 注意:由于clone方法返回值的类型是对象Object
,所以要使用(int[])强制转换为int[]
。
相关文章推荐
- Java中数组的使用方法? 初始化,二维数组,数组复制
- C++和Java数组初始化的对比
- C++与Java数组的申明创建初始化的区别
- C++程序员学Java系列之十二:一维数组定义,初始化,遍历,最值及异常
- JAVA和C++数组初始化
- java学习(12)对象数组初始化 java与C++的区别
- C#、Java、C、C++初始化数组过程和比较
- java笔记之数组的概念、声明、初始化、访问方式、复制和动态扩展算法以及递归
- java笔记之数组的概念、声明、初始化、访问方式、复制和动态扩展算法以及递归
- java笔记之数组的概念、声明、初始化、访问方式、复制和动态扩展算法以及递归
- java数组定义及初始化+print打印问题
- 【java】数组复制几种方式比较
- Java数组声明、创建、初始化
- java值数组初始化及异常
- Java中数组的复制
- Java中数组的复制的问题
- Java数组的复制
- 初始化顺序 java c# c++
- 2017/12/31Java基础学习——复制数组の——Arrays.copyOfRange()方法讲解
- JAVA对象数组的初始化方法