百度
360搜索
搜狗搜索

数组初始化的三种方法,请教对设定数组进行初始化的方法详细介绍

本文目录一览: 关于数组的定义和初始化

一、数组,是有序的元素序列。若将有限个类型相同的变量的集合命名,那么这个名称为数组名。组成数组的各个变量称为数组的分量,也称为数组的元素,有时也称为下标变量。用于区分数组的各个元素的数字编号称为下标。数组是在程序设计中,为了处理方便, 把具有相同类型的若干元素按无序的形式组织起来的一种形式。这些无序排列的同类数据元素的集合称为数组。

二、数组常见的三种初始化:

1、默认初始化:数组是引用类型,它的元素相当于类的实例变量,因此数组一经分配空间,其中的每个元素也被按照实例变量同样

Java数组初始化,这三种方式有什么区别

三种初始化完全没区别,纯粹看个人习惯
创建数组的三种方式:其实分为2类,一种是静态的创建,如方式一。一种是动态的创建,只不过根据写法的不同分为方式二和方式三:
[java] view plain copy
public static void main(String[] args) {
// 1.方式一 声明 分配空间并赋值
int[] arr1 = {1,2,3};
// 2.方式二 显示初始化
int[] arr2;
arr2 = new int[]{1,2,3};
// 3.方式三 显示初始化()
int[] arr3;
arr3 = new int[3];
}
他们的区别,方式一:在声明的时候直接就已经分配空间,并赋值,方式一是不能写成如下这种形式的。
[java] view plain copy
int[] arr1;
arr1 = {1,2,3};//错误写法 编译不同过
方式二和方式三,声明和内存分配是分开的,如上面的例子,
[java] view plain copy
int[] arr2; 和 int[] arr3;
这一步是在栈空间分配一个引用,存放的是一个引用,null
[java] view plain copy
arr2 = new int[]{1,2,3};
到这一步的时候jvm才开始在内存堆区域分配空间,并赋值,方式二直接赋值 1,2,3 方式三 默认初始化,基本类型是 0 布尔类型是 false 引用类型为null,
注:内存一旦分配不能改变,所有说数组长度固定

请教对设定数组进行初始化的方法

一般对数组初始化可以用以下方法实现:
(1)在定义数组时对数组元素赋以初值。如:
1
static
int
a[10]={0,1,2,3,4,5,6,7,8,9};
经过上面的定义和初始化后,a[0]=0,a[1]=1,…,a[9]=9。
(2)初始化时可以只对一部分元素赋初值。例如:
1
static
int
a[10]={0,1,2,3,4};
定义的数组有10个元素,但只对其中前5个元素赋了初值,后5个元素初值为0。
(3)如果想使一个数组的元素值全部为0,可以用下面的方法:
1
static
int
a[10]={0,0,0,0,0,0,0,0,0,0};
不能用:
1
static
int
a[10]={0*10};
如果对static型数组不赋初值,系统会对定义的所有数组元素自动赋以0值。
(4)在对全部数组元素赋初值时,可以不指定数组长度。

C语言数组的初始化表示方法

在C语言中,数组的初始化有以下几种方式:
1、定义的时候同时初始化:
int array[10] = {1,2,3,4,5};
2、定义的时候不指定数组大小,由初始化的数组元素来确定大小:
int array[] = {1,2,3,4,5};
3、先定义变量,然后初始化.注意点:定义变量时必须制定数组的大小.此时只能对数组变量成员元素逐一赋值,不能批量赋值.
// int array[]; //错误用法
int array[12];
// array = {1, 2, 3}; //错误用法.
array[0] = 1;
array[1] = 2;
array[2] = 3;
4、只有一种情况,在作为方法的形式参数时,可以不指定数组的大小.这时传入方法的是数组的首地址,所以在方法内部是无法得到数组长度的,数组长度必须作为参数传入函数.
void test()
{
int array[] = {1,2,3,4,5};
int length = sizeof(array)/sizeof(int);
int result = sumOfArray(array, length);
printf("%d",result);
}
int sumOfArray(int array[], int length)
{
int result = 0;
for (int i=0; i
<length; i++)
{

result += array[i];

}

return result;

}

扩展资料

C语言数组构建:

1、遵循原则

申请的时候从外层往里层,逐层申请;

释放的时候从里层往外层,逐层释放。

2、构建所需指针

对于构建一维动态数组,需要一维指针;

对于二维,则需要一维,二维指针;

三维需要一,二,三维指针;

依此类推。

参考资料

百度百科-C语言

一般对数组初始化可以用以下方法实现:

(1)在定义数组时对数组元素赋以初值。如:

static int a[10]={0,1,2,3,4,5,6,7,8,9};经过上面的定义和初始化后,a[0]=0,a[1]=1,…,a[9]=9。

(2)初始化时可以只对一部分元素赋初值。例如:

static int a[10]={0,1,2,3,4};定义的数组有10个元素,但只对其中前5个元素赋了初值,后5个元素初值为0。

(3)如果想使一个数组的元素值全部为0,可以用下面的方法:

static int a[10]={0,0,0,0,0,0,0,0,0,0};不能用:

static int a[10]={0*10};如果对static型数组不赋初值,系统会对定义的所有数组元素自动赋以0值。

(4)在对全部数组元素赋初值时,可以不指定数组长度。

C语言数组的初始化表示方法有4种,分别是:

1、定义的同时进行初始化,我们同样用数组的初始化引出结构体的初始化,我们知道数组在定义的同时进行初始化的代码如下:

int nums[] = {1, 3, 5};

由此可推出结构体在定义的同时进行初始化的代码如下:

struct Person p = {"lee", 23, 1.8};

2、先定义再进行初始化,这种初始化方法其实昨天的内容里已经写过了,代码如下:

struct Person p;

p.name = "lee";

p.age = 23;

p.height = 1.8;

我们知道数据定义好后就不能对其进行一次性初始化了,比如如下代码是编译不通过的。

int nums[3];

num = {1, 2, 3}

3、第三种结构体比较例外,它可以这样做,只不过需要对其进行一下强制类型转换,代码如下:

struct Person p;

p = (struct Person){"xq, 8, 8.8}

4、指定将数据赋值给指定的属性,数组中我们见过这种写法,代码如下:

int nums[3] = {[0] = 2, [2] = 1, [1] = 2};

我们可以为不同的索引指定值,并不需要一定要按顺序来,所以数组可以,结构体是否可以呢,当然,代码如下:

struct Person p = {.height = 1.8, .name = "lee", .age = 23};

C语言数组的初始化表示方法有4种,分别是:

1、定义的同时进行初始化,我们同样用数组的初始化引出结构体的初始化,我们知道数组在定义的同时进行初始化的代码如下:

int nums[] = {1, 3, 5};

由此可推出结构体在定义的同时进行初始化的代码如下:

struct Person p = {"lee", 23, 1.8};

2、先定义再进行初始化,这种初始化方法其实昨天的内容里已经写过了,代码如下:

struct Person p;

p.name = "lee";

p.age = 23;

p.height = 1.8;

我们知道数据定义好后就不能对其进行一次性初始化了,比如如下代码是编译不通过的。

int nums[3];

num = {1, 2, 3}

3、第三种结构体比较例外,它可以这样做,只不过需要对其进行一下强制类型转换,代码如下:

struct Person p;

p = (struct Person){"xq, 8, 8.8}

4、指定将数据赋值给指定的属性,数组中我们见过这种写法,代码如下:

int nums[3] = {[0] = 2, [2] = 1, [1] = 2};

我们可以为不同的索引指定值,并不需要一定要按顺序来,所以数组可以,结构体是否可以呢,当然,代码如下:

struct Person p = {.height = 1.8, .name = "lee", .age = 23};

数组的初始化:

int a[]={1,2,3}; 这种方式初始化,大括号里写了几个元素那么数组里就有几个元素,相当于int a[3]={1,2,3}

int a[3]={0}; 这样是将a中的所有元素初始化为0;

int a[4]={1,2}; 这样是将a[0]初始化为1,a[1]初始化为2,其他的初始化为0

不是inta[] 而是例如int a[10]这种。括号内一定要有个常量数字。

我们可以这样定义

#define N 5

int a[N]

这表明了数组名为a;数组有5个元素;分别是a[0]到a[4];

对于数组来说;数组是变量的集合,因此数组也具有与变量相同的数据类型和储存类型。数组的类型就是它所有的变量的类型。在定义数组时,应在数组名前对数组的类型加以确定。如上面的int a[10];则表明了数组内元素均为整形。

所有当表示浮点型可以定义为例如float a[10]。 举例如下:

扩展资料数组名是由用户命名的C语言标识符,要遵循标识符命名规则。数组名表示数组存储区域的首地址。数组的首地址也就是第一个元素的地址。数组名是一个地址常量,不能对它赋值。

数组名后是由方括号括起来的常量表达式,不能使用其他括号

阅读更多 >>>  c语言数组函数,c语言中能不能定义函数数组

举例说明对数组初始化的几种方法 哪位知道回答下 谢谢

1
列出数组所有元素值进行初始化,比如,下面的列出了4个元素所有值
int
a[4]
=
{1,2,3,4};
2
初始化数量少于元素数量,比如下面的数组有4个元素,但只给了两个初始值
int
a[4]
=
{1,2};
等价于
int
a[4]
=
{1,2,
0,
0};
3
不指定数组维数初始化
int
a[]
=
{1,2,3,4};
4
特殊情况,
字符数组初始化
char
x[5]
=
"abcd";
等价于
char
x[5]
=
{'a',
'b',
'c',
'd',
'\0'};

什么叫对数组的初始化?怎么初始化

就是定义的时候给数组元素赋上值。
比如int a[3] = {1,2,3};
对数组的初始化就是数组内元素全部进行清零。清零的办法有很多种,有软件的有硬件的,软件的方法也分很多种。你可以找相关的资料看看。
String a[] = new String[0];
java的数组初始化
数组的初始化就是对其赋初值,也就是向这个数组中装入有意义的数据。初始化的方法有很多:
1、如果事先已知数组的值,可以在声明数组时直接初始化。例:int s[5]={1,2,3,4,5};
2、我们用得最多的是输入数据给数组,这就需要用到循环for(i=0;i
<n;i++)来对从0到n-1个数组元素进行赋值,i在这里是充当数组的下标s[i].
建议你仔细看看书吧。
</n;i++)来对从0到n-1个数组元素进行赋值,i在这里是充当数组的下标s[i].

c语言二维数组初始化的三种方式

c语言二维数组初始化的三种方式
int a[3][3]={1,2,3,4,5,6,7,8,9};
int a[3][3]={{1,2,3},{4,5},{7}};
int a[3][3]={0};

c++类对象数组初始化的几种方法

类对象数组初始化
如有一个如下类:
class EquipmentPiece {
private:
int IDNumber;
public:
EquipmentPiece(int IDNumber) : IDNumber(IDNumber) {};
};
以下列出几种初始化的方法:

、对象数组

int ID1, ID2, ID3;

EquipmentPiece bestPieces[] = { EquipmentPiece(ID1), EquipmentPiece(ID2), EquipmentPiece(ID3) };

注意:

EquipmentPiece bestPieces[10]; //no appropriate default constructor available

EquipmentPiece *bestPieces = new EquipmentPiece[10]; //no appropriate default constructor available

当然,如果你将构造函数参数全都设了默认值,以上两种写法也成功,如将类中构造函数修改如下:

...

EquipmentPiece(int IDNumber = 0) : IDNumber(IDNumber) {};

...

、指针数组

typedef EquipmentPiece* PEP; //PEP是个指向EquipmentPiece的指针

PEP bestPieces[10]; //等同于 PEP *bestPieces = new PEP[10];

//然后初始化

for(int i = 0; i < 10; i++){

bestPieces[i] = new EquipmentPiece( IDNumber );

}

注意:

要记得将此数组所指的所有对象删除。如果忘了会产生资源泄露。还有就是该方法与对象数组相比需要额外内存用于存放指针。(过度使用内存 这一问题可以避免,见第三种方法)

、使用placement new

方法是:先为此数组分配raw memory,然后使用"placement new"在这块内存上构造EquipmentPiece objects;

//分配足够的raw memory,给一个预备容纳10个EquipmentPiece objects的数组使用

void *rawMemory = operator new(10*sizeof(EquipmentPiece));

//让bestPieces指向此内存,使这块内存被视为一个EquipmentPiece数组

EquipmentPiece *bestPieces = reinterpret_cast

(rawMemory);

//利用"placement new"构造这块内存中的EquipmentPiece objects。

int IDNumber = 0;

for(int i = 0; i < 10; i++){

new (&bestPieces[i]) EquipmentPiece( IDNumber );

}

注意:该方法维护比较困难。在数组内对象结束生命时,要以手动方式调用destructors,最后还得调用operator delete释放raw memory。

//将bestPieces中对象以构造次序的反序析构掉

for(i = 0; i < 10; i++){

bestPieces[i].~EquipmentPiece();

}

//释放raw memory

operator delete (rawMemory);



c语言数组的初始化有哪几种

在C语言中,数组的初始化有以下几种方式:
1、定义的时候同时初始化:
int array[10] = {1,2,3,4,5};
2、定义的时候不指定数组大小,由初始化的数组元素来确定大小:
int array[] = {1,2,3,4,5};
3、先定义变量,然后初始化.注意点:定义变量时必须制定数组的大小.此时只能对数组变量成员元素逐一赋值,不能批量赋值.
我来一一解答,希望解答的合适请多加点分,谢谢
1,C语言有的数据类型都可以作为数组的类型,不光是int,char
float
double
long
指针
结构等等都可以是数组的类型。
2,这样理解是正确的,数组中的每一个元素和这个数组类型一样的变量类型相同,取值范围相同,只是引用方式不一样。
3,是的,数组的性质都是一样的,不光是char,所有类型都符合这一规律
4,那么char型变量和数组用什么值给其初始化比较安全?这种提问没有见过,只能说不初始化会使数组指向其他内存单元,导致不确定的值。最好是在数组初始化的时候赋给你需要用的值
还有什么问题可以Hi我

网站数据信息

"数组初始化的三种方法,请教对设定数组进行初始化的方法"浏览人数已经达到16次,如你需要查询该站的相关权重信息,可以点击进入"Chinaz数据" 查询。更多网站价值评估因素如:数组初始化的三种方法,请教对设定数组进行初始化的方法的访问速度、搜索引擎收录以及索引量、用户体验等。 要评估一个站的价值,最主要还是需要根据您自身的需求,如网站IP、PV、跳出率等!