2021-10-21

本文介绍了Java中数组的定义和初始化方式,包括静态和动态初始化,并通过示例代码详细解释了两者的区别。此外,还讲解了变长数组的使用,以及如何通过const关键字创建只读数组,确保在函数中数组内容的不可变性。了解这些概念对于Java编程至关重要。
摘要由CSDN通过智能技术生成

数组的定义,初始化,及变长数组和const关键字

数组的定义:

通常用 type arr_name[]来表示一个一维数组。

同样二维数组 type_name[][]。

定义数组时[]可以放在类型后面也可以放在变量名后面。

数组的初始化:

  1. 静态初始化:指在定义时间同时指定数组元素内容。

示例代码如下:
int [] arr1 = {1,2,3,4,5};
String [] arr2 = {“tom”,"rose,“sum”};
静态初始化时不需要指定数组的大小,系统会根据指定的内容的数量自动分配大小。

  1. 动态初始化:在定义是首先通过new关键字开辟指定大小的储存空间,然后再为储存单元指定内容。

示例代码如下:
// 初始化一维数组:
int arr1[] = new int[3];
arr[1] = 0;
arr[2] = 1;
arr[3] = 2;
//初始化二维数组:
int [][] arr2 = new String[2][2];
arr2[0][0] = 1;
arr2[0][1] = 2;
arr2[1][0] = 3;
arr2[1][1] = 4;

当定义一个数组arr3[4] = {1,2};计算机会给后面的值全部赋值为0;

当定义一个数组为arr[4] = {};计算机给数组里面赋的值的是随机的。

动态初始化在开始就为数组定义了长度。

动态和静态的区别:动态初始化一开始就定义了数组的长度(此时已经分配内存)。

注:在使用一个数组之前必须初始化这个数组,否则计算机将会报错。

变长数组:

变长数组的定义:

例int sum(int rows,int cols, int arr[rows][cols]);// arr是一个变长数组。

注:两个形参要在数组定义之前说明。

可以省略原型中的形参名,但是在这种情况下,必须要用*来代替省略的维度。

例:int sum(int ,int ,int arr[][]);

该函数的定义如下:

int sum(int rows,int cols,int arr[rows][cols])
{
	int r;
	int c;
	int tot = 0;
	for(r = 0;r < rows; r++)
	{
		for(c = 0;c < cols; c++)
		tot += arr[r][c];
		return tot;
	}
}

const关键字

有时需要把数组设置为只读。这样,程序只能从数组中检索值,不能把新值写进数组。要创建只读数组,应该用const关键字声明和初始化数组。

const int arr[5] = {20,21,22,23,24};

一旦使用 const定义后就不能改变其中的内容。

对形式参数使用:

int sum(const int arr[], int n)
{
	int i;
	int tot = 0;
	for(i = 0; i < n; i++)
	{
		tot += arr[i];
		return tot;
	}
}

以上代码表示该函数不能修改arr指向的函数中的内容。如果函数不小心使用arr[i] ++ 的表达式,编译器会捕捉到错误,并生成一条错误信息。

const并不是要求原数组一定要是常量,而是在函数处理数组时将其视为常量,不可更改。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值