您的位置:首页 > 编程语言 > C语言/C++

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[]
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: